在 Windows 上使用 Ghostscript 从 PDF 进行分页 JPEG 转换/导出
Posted
技术标签:
【中文标题】在 Windows 上使用 Ghostscript 从 PDF 进行分页 JPEG 转换/导出【英文标题】:Page-wise JPEG conversion/export from PDF using Ghostscript on Windows 【发布时间】:2012-08-11 10:35:30 【问题描述】:我想使用 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
【问题讨论】:
您能否提供一个(链接到)展示此行为的示例 PDF 页面?如果没有样本,就无法确定白色条带的原因,也无法找到避免它的方法。 【参考方案1】:在 Windows 上,您必须将格式说明符的 %
字符加倍以获得页码增量:
gswin64c.exe \ -o 杂志页面_%%04d.jpg \ -sDEVICE=JPEG\ -r350\ -dJPEGQ=100 \ 杂志.pdf
没有看到您的 PDF,我无法确定您的白条来自哪里。
所以,只是理论上的:通常,在现实中作为白色背景出现在 PDF 页面(在 PDF 阅读器中查看或打印在纸上)的内容是 透明 背景。 (您可以在 Acrobat Reader 中使透明区域可见:转到首选项... -> 页面显示 并激活复选框显示透明度网格。
JPEG 不知道透明度并将所有完全透明的区域转换为白色。
您可以在 ImageMagick 的帮助下修剪掉白色区域。或者,如果您知道每个条带的确切宽度(以及 PDF 页面尺寸),您可以通过额外的命令行参数告诉 Ghostscript 修剪掉这些...
您还可以转换为支持透明度的 PNG:
gswin64c.exe \ -o 杂志页面_%%04d.png \ -sDEVICE=pngalpha\ -r350\ 杂志.pdf请注意,页面图像周围仍然会有条纹 - 但它们将是透明的,而不是白色的。
【讨论】:
白色边框很可能是媒体框(GS 使用)和裁剪框(观众使用)之间的区别。您可以使用 -dUseCropBox 告诉 GS 使用 CropBox 而不是 MediaBox。您不需要将 '%' 加倍 除非 您从批处理文件中调用 GS,在命令行上 '%d' 应该可以正常工作。正在使用的 GS 版本的示例 PDF ilfe 会有所帮助以上是关于在 Windows 上使用 Ghostscript 从 PDF 进行分页 JPEG 转换/导出的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows 8 上用 Python 导入 Ghostscript
Ghostscript - 如何在 Windows10 或 Windows Server 2012 上抑制打印对话框
让 Graphic Magick 检测 Ghostscript 以在 Windows 上阅读 pdf。如何将 WINDOWS CMD 上的 Ghostscript 调用名称更改为“gs”?
Ghostscript:如何在 Windows 上将 PDF 与通配符合并