首先,
确定您的第一个 PDF 页面的边界框:
gs \
-q \
-dBATCH \
-dNOPAUSE \
-sDEVICE=bbox \
-dLastPage=1 \
stackoverflowQuestion.pdf \
2>&1 \
| grep %%BoundingBox
结果输出将是:
%%BoundingBox: 119 531 464 814
意思是:
- 边界框的左下角在坐标
(119,531)
- 边界框的右上角在坐标
(464,814)
这些值在 PostScript 点 中(其中72 pt == 1 inch)。边界框就是那个矩形,其中包括这些在页面上留下墨水或墨粉标记的图形 PDF 对象。
那么,
创建你的 PNG。
根据边界框值,您似乎希望它宽 345 pt (= 464 - 119) 和高 283 pt (= 814 - 531)。这导致页面大小为-g345x283(以像素为单位,因为 Ghostscript 默认使用 72 dpi 进行图像输出(除非另有说明),因此72 px == 1 inch。
或者更好的是,我们保持距离边界框 1 pt 的安全区域,因此我们使图像比最低限度大一点,我们得到这个图像尺寸:-g347x285。
您还需要从左边缘剪掉 119 pt('security' 为 118 pt)和底部边缘 531 pt(为 security 剪下 530 pt)。
因此命令将是:
gs \
-o out.png \
-sDEVICE=pngalpha \
-g347x285 \
-dLastPage=1 \
-c "<</Install {-118 -530 translate}>> setpagedevice" \
-f stackoverflowQuestion.pdf
这是生成的 PNG:
为了获得更好的 PNG 质量,请将分辨率从默认的 72 dpi 提高到 720 dpi 并使用以下命令:
gs \
-o out720dpi.png \
-sDEVICE=pngalpha \
-r720 \
-g3470x2850 \
-dLastPage=1 \
-c "<</Install {-118 -530 translate}>> setpagedevice" \
-f stackoverflowQuestion.pdf
更新:
在 CMD 窗口中的 Windows 上,Ghostscript 的控制台应用程序名称为 gswin32c.exe 和/或 gswin64c.exe(而不是 gs)。此外,您必须使用 ^ 作为行继续符(而不是 \)。