在Windows上使用Ghostscript从PDF进行逐页JPEG转换/导出

时间:2012-08-11 10:35:31

标签: pdf pdf-generation ghostscript

我想将 ghostscript 用于转换 pdf 来源为 jpeg 系列图像系列。一切正常,除了:

  • .jpeg输出文件名的格式说明符(%d)无效 Windows(我使用的是Windows 7 64位),所以我需要为每一页调用gswin64c.exe。
  • 导出的.jpeg文件在页面周围有白色条纹,而.pdf 那里什么都没有 - 我能以某种方式摆脱它们吗?

我的命令行:

gswin64c.exe \
   -dSAFER -dBATCH -dNOPAUSE \
   -sDEVICE=jpeg \
   -r350 \
   -dJPEGQ=100 \
   -dFirstPage=1 -dLastPage=1 \
   -sOutputFile=magazine-1.jpg \
     magazine.pdf

1 个答案:

答案 0 :(得分:1)

  1. 在Windows上,您必须将格式说明符的%字符翻倍才能获得页码增量:

    gswin64c.exe \
         -o magazine-page_%%04d.jpg \
         -sDEVICE=jpeg \
         -r350 \
         -dJPEGQ=100 \
          magazine.pdf
    

  2. 如果没有看到您的PDF,我无法确定您的白条来自何处。

    所以,只是理论化:通常,PDF页面(在PDF阅读器中查看或在纸上打印)作为白色背景显示的是透明背景。 (您可以在Acrobat Reader中显示透明区域:转到首选项... - > 页面显示并激活复选框显示透明度网格

    JPEG不了解透明度,并将所有完全透明的区域转换为白色。

    您可以在ImageMagick的帮助下修剪白色区域。或者,如果您知道每个条带的确切宽度(以及PDF页面尺寸),您可以通过其他命令行参数告诉Ghostscript来删除这些...

    您还可以转换为支持透明度的PNG:

    gswin64c.exe \
         -o magazine-page_%%04d.png \
         -sDEVICE=pngalpha \
         -r350 \
          magazine.pdf
    
    请注意,页面图像周围仍会有条纹 - 但它们将是透明的而不是白色。

    < / p>