您可以通过输入了解 ImageMagick“代表”(IM 使用的外部程序,例如 Ghostscript)的详细设置
convert -list delegate
(在我的系统上,这是 32 个不同命令的列表。)现在要查看哪些命令用于转换为 PNG,请使用以下命令:
convert -list delegate | findstr /i png
好的,这是针对 Windows 的。你没有说你使用哪个操作系统。[*]如果您使用的是 Linux,请尝试以下操作:
convert -list delegate | grep -i png
您会发现 IM 确实仅从 PS 或 EPS 输入生成 PNG。那么 IM 如何从您的 PDF 中获取 (E)PS 呢?简单的:
convert -list delegate | findstr /i PDF
convert -list delegate | grep -i PDF
啊!它使用 Ghostscript 进行 PDF => PS 转换,然后再次使用 Ghostscript 进行 PS => PNG 转换。有效,但不是最有效的方法如果您知道 Ghostscript 可以在中执行 PDF => PNGone去。而且更快。而且质量要好得多。
关于 IM 通过 Ghostscript 委托处理 PDF 转换为图像的过程,您首先应该了解两件事:
- 默认情况下,如果您不提供额外的参数,Ghostscript 将输出分辨率为 72dpi 的图像。这就是为什么卡尔的回答建议添加
-density 600
它告诉 Ghostscript 使用 600 dpi 分辨率进行图像输出。
- The detour of IM to call Ghostscript twice to convert first
PDF => PS
and then PS => PNG
is a real blunder. Because you never win and harldy keep quality in the first step, but very often loose some. Reasons:
- PDF 可以处理透明胶片,而 PostScript 则不能。
- PDF 可以嵌入 TrueType 字体,而 Ghostscript 则不能。等页。
方向转换
PS => PDF
并不是那么重要......)
这就是为什么我建议您直接使用 Ghostscript 将 PDF 一次性转换为 PNG(或 JPEG)。并使用最新版本8.71 http://www.ghostscript.com/releases/(即将发布:9.01)Ghostscript!以下是命令示例:
gswin32c.exe ^
-sDEVICE=pngalpha ^
-o output/page_%03d.png ^
-r600 ^
d:/path/to/your/input.pdf
(这是 Windows 的命令行。在 Linux 上,使用gs
代替gswin32c.exe
, and \
代替^
.) 该命令期望找到一个output
子目录将为每个 PDF 页面存储一个单独的文件。要生成高质量的 JPEG,请尝试
gs \
-sDEVICE=jpeg \
-o output/page_%03d.jpeg \
-r600 \
-dJPEGQ=95 \
/path/to/your/input.pdf
(Linux 命令版本)。这种直接转换避免了中间的 PostScript 格式,这种格式可能会丢失原始 PDF 文件中的 TrueType 字体和透明度对象信息。
[*]噢!我一开始就错过了看到你的“linux”标签......