【发布时间】:2016-09-09 11:23:35
【问题描述】:
我有一个 ImageMagick 命令,用于将 PDF 的第一页转换为图像。
convert file.pdf[0] -background white -flatten -resize 173 \
-crop 173X229+0+0 -gravity NorthWest +repage test.jpg
在这里,我需要 173px 宽度的图像,第一页的最大高度为 229px。 对于更大的文件(~9MB),转换大约需要 2 分钟。
当我尝试使用以下 gs 对其进行测试时,脚本只用了几分之一秒:
gs -sDEVICE=jpeg -dFirstPage=1 -dLastPage=1 -o test4.jpg file.pdf
我需要帮助将图像大小调整为 173 像素,然后将高度裁剪为 229 像素。谁能帮忙解决这个 gs 脚本?
【问题讨论】:
-
阅读 Ghostscript 文档 :-) 您将需要 -dFIXEDMEDIA 开关以及 -gXandY 来设置所需的页面大小(以像素为单位),然后您最终需要 -dPDFFitPage 将页面缩放到那些尺寸。
-
谢谢@KenS。通过使用您上面的提示,我可以得到一些工作 - ` gs -sDEVICE=jpeg -dFirstPage=1 -dLastPage=1 -g173x229 -dFIXEDMEDIA -dPDFFitPage -o test6.jpg file.pdf `但是还有一个问题- 当我使用面向横向的 pdf 时,我得到一个旋转的图像。即图像被旋转为肖像。我似乎找不到任何有用的东西。你能帮我吗?我尝试添加参数 - -c "> setpagedevice" 但这会引发错误
-
如果它在旋转时更适合,FitPage 例程将旋转它,因为它涉及的缩小较少。如果您想避免这种情况,则需要重写该代码。它们是用 PostScript 编写的,您在 PostScript 中编码如何?更改媒体匹配中的方向无济于事,因为您已使用 -g 指定了媒体大小
-
我从来没有用过 PostScript 编码,但我想学习它。我需要知道它是否不是一项大任务,然后我会深入去做。如果有一些例子可供参考,那将有很大帮助。
-
好吧,在我看来这项工作是在 /ghostpdl/Resource/Init/pdf_main.ps 中定义的例程 pdf_PDF2PS_matrix 中完成的。它确实有一些最小的 cmets,所以你可以弄清楚发生了什么。
标签: pdf imagemagick ghostscript imagemagick-convert