从 N 页 PDF 中获取 N 个 jpeg 图像

ale*_*rio 5 pdf jpeg ghostscript conversion

我有一个由 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 
Run Code Online (Sandbox Code Playgroud)

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

我怎样才能从 N 页 PDF(从命令行)中获得 N 个 jpeg 图像?

Kur*_*fle 3

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

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

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

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

“从 N 页 PDF(从命令行)简单地获取 N 个 jpeg 图像”,请使用以下命令:

 gs \
   -sDEVICE=jpeg \
   -o output/%d.jpg \
    mypdf.pdf
Run Code Online (Sandbox Code Playgroud)

这是最简单的调用,不会裁剪任何内容,并将使用 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重新采样所有页面和其中包含的对象都符合新的分辨率。