从 N 页 PDF 获取 N 个 jpeg 图像

从 N 页 PDF 获取 N 个 jpeg 图像

我有一个由 N 页组成的 PDF。我想将此 PDF 转换为 N 个 jpeg 图像(通过命令行,不使用 Php、Java 或其他编程语言)。

我正在尝试使用 GHOSTSCRIPT 来执行此操作,但 GS 提供给我的输出并不像我想要的输出。

例子:

gs \
  -sDEVICE=jpeg \
  -dNOCACHE \
  -dDEVICEHEIGHTPOINTS=72 -dDEVICEWIDTHPOINTS=72 \
  -r300 \
  -g800x600 \
  -dFIXEDMEDIA \
  -dPDFFitPage \
  -sOutputFile=output/%d.jpg \
   mypdf.pdf 

生成具有 800x600 分辨率的 N jpeg 图像,但似乎 PDF 页面被裁剪且不适合。

我怎样才能从 N-Pages PDF 中获取 N jpeg 图像(从命令行)?

答案1

alesdario 使用的命令行执行以下操作:

  1. 告诉 Ghostscript 使用 800px x 600px(像素)的输出尺寸。
  2. 告诉 Ghostscript 使用 300dpi(每英寸点数)的分辨率。
  3. 告诉 Ghostscript 使用 72 个设备点的输出维度。

三者不能同时起作用,因为如果两者同时起作用,就会与第三者相矛盾。

在 300 dpi 下,800x600 的画布将产生 2.33 英寸 x 2 英寸(英寸)的物理尺寸 - 比原始 PDF 页面大小(可能)小得多。

“只需从 N 页 PDF 中获取 N 张 jpeg 图像(从命令行)”使用此命令:

 gs \
   -sDEVICE=jpeg \
   -o output/%d.jpg \
    mypdf.pdf

这是最简单的调用,不会裁剪任何内容,并将使用 Ghostscript 的默认设置:

  • 图像分辨率:JPEG 输出为 72 dpi
  • 输出图像的尺寸:这遵循相应的 PDF 页面大小(但是,Ghostscript 假定 PDF 使用 720dpi)。

为了从 N 页 PDF 中获取 N 个 JPEG 图像按预定义的分辨率和预定义的图像尺寸,您需要自己进行一些计算并相应地设置-r-g值。例如,您可能希望 JPEG 的分辨率为 200 dpi(来自 ISO A4 [595x842 pt] 的 PDF 页面大小):这意味着-r200 -g1652x2338如果您想避免裁剪,则需要在命令行中添加....这将使 Ghostscript重采样所有页面及其所包含的对象均调整为新的分辨率。

答案2

尝试图像魔术师。我相信你想要的命令是:

$ convert -density 400 my.pdf my.jpeg

相关内容