pdf - 如何在 PostScript 中从 viewjpeg.ps 文件设置 PDF 页面大小

标签 pdf jpeg ghostscript postscript

我使用 Ghostscript 将 JPEG 转换为 PDF:

gs -sDEVICE=pdfwrite -o d.pdf viewjpeg.ps -c "(Imgp3826.Jpeg) viewJPEG showpage 

这将创建具有默认页面大小和图像的 PDF,位于左下角。 我需要修改脚本以创建具有正确尺寸的页面。

在本说明中:https://stackoverflow.com/a/6508854/907576

他们使用ImageMagick来完成此操作,但我无法使用它 - 我只能使用Ghostscript

可以从viewjpeg.ps获取宽度-高度值并将其设置为页面大小?

我在 viewjpeg.ps 中看到:

/height NextByte 8 bitshift NextByte add def
/width NextByte 8 bitshift NextByte add def

看起来他们使用 JPEG header 来读取此信息。

我可以将其重新用于 <</PageSize [${dimension}]>>

最佳答案

FWIW,由于 viewJPEG 过程的编写方式,上面列出的简单加法不能单独工作。

我建议使用另一个过程来增强 viewjpeg.ps:

/viewJPEGgetsize {      % <file|string> ==> width height
    save
    JPEGdict begin
    /saved exch def
    /scratch 1 string def
    dup type /stringtype eq { (r) file } if
    /F exch def

    readJPEGmarkers begin
    width height
    saved end restore
} bind def

然后你可以这样调用它:

gs -I../lib -sDEVICE=pdfwrite \
   -o stuff.pdf viewjpeg.ps   \
   -c "(image.jpg) <</PageSize 2 index viewJPEGgetsize 2 array astore>> setpagedevice viewJPEG"

关于pdf - 如何在 PostScript 中从 viewjpeg.ps 文件设置 PDF 页面大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12690554/

相关文章:

amazon-web-services - 为什么我使用预先签名的 AWS S3 url 上传的 pdf 没有正确的内容类型?

internet-explorer - 在 IE11 中打开 pdf 时需要禁用 "open , save , save as prompt"

size - 确定JPEG(JFIF)图像的大小

c# - 将 jpeg 图像调整为指定大小

pdf - 使用 Ghostscript 保留输入大小以将 EPS 转换为 PDF

字符串中的 Ghostscript 错误限制检查

pdf - 使用Ghostscript裁剪PDF/添加裁剪框

c# - 在 WebBrowser 控件上显示 PDF 不起作用

java - 使用 PDFbox 从 PDF 文件中删除图像

c++ - 解码 JPEG 以获得未压缩的数据