如何将PDF转换为图像?

我要求将PDF页面转换为图像。 有一个背景图像写有一些文字,所以当我将其保存为图像时,只保存背景图像。

有没有可用的软件,以便完整的页面可以转换为图像?

  1. 安装imagemagick 。

  2. 使用PDF所在的终端:

    • 完整文件:

      convert -density 150 input.pdf -quality 90 output.png 
    • 对于单个页面:

       convert -density 150 input.pdf[666] -quality 90 output.png 

因此:

  • 可以选择PNG,JPG或(虚拟)任何其他图像格式。

  • -density xxx将DPI设置为xxx (常见的是150和300)。

  • -quality xxx将压缩设置为xxx用于PNG,JPG和MIFF文件格式(100表示​​不压缩)。

  • [666]将仅将第667页转换为PNG(从零开始编号,因此[0]是第1页)。

  • 所有其他选项(如修剪,灰度等)都可以在Image Magic的网站上查看 。

您可以使用pdftoppm将PDF转换为PNG:

 pdftoppm input.pdf outputname -png 

这将使用outputname-01.png格式输出PDF中的每个页面, 01表示页面的索引。

转换PDF的单页

 pdftoppm input.pdf outputname -png -f {page} -singlefile 

{page}更改为页码。 它的索引为1,所以-f 1将是第一页。

指定转换后图像的分辨率

此命令的默认分辨率为150 DPI。 增加它将导致更大的文件大小和更多细节。

要提高已转换PDF的分辨率,请添加选项-rx {resolution}-ry {resolution} 。 例如:

 pdftoppm input.pdf outputname -png -rx 300 -ry 300 

IIRC GIMP能够使用PDF,即将它们转换为图像。 因此,如果您想立即编辑图像 – GIMP是您的朋友。

目前接受的答案可以完成这项工作,但会产生更大的输出并且会受到质量损失的影响。

这里给出的答案中的方法产生的输出在尺寸上与输入相当,并且不会遭受质量损失。

TLDR – 使用pdfimagespdfimages -j input.pdf output

引用链接的答案:

目前尚不清楚“质量损失”是什么意思。 这可能意味着很多不同的事情。 你能发一些样品来说明吗? 也许从劣质和优质版本中切出相同的部分(作为PNG以避免进一步的质量损失)。

也许你需要使用-density以更高的dpi进行转换:

 convert -density 300 file.pdf page_%04d.jpg 

(如果需要,你可以预先安装-units PixelsPerInch-units PixelsPerCentimeter 。我的副本默认为ppi。)

更新:正如您所指出的, gscan2pdf (您使用它的方式)只是pdfimages的包装器(来自poppler )。 当给定PDF作为输入时, pdfimages不会执行与convert相同的操作。

convert获取PDF,以某种分辨率呈现它,并使用生成的位图作为源图像。

pdfimages通过PDF查看嵌入的位图图像,并将每个图像导出到文件中。 它只是忽略PDF中的任何文本或矢量绘图命令。

因此,如果您拥有的PDF只是一系列位图的包装器, pdfimages可以更好地提取它们,因为它可以获得原始大小的原始数据。 您可能还想对pdfimages使用-j选项,因为PDF可以包含原始JPEG数据。 默认情况下, pdfimages将所有内容转换为PNM格式,转换JPEG> PPM> JPEG是一个有损的过程。

所以,试试吧

 pdfimages -j file.pdf page 

您可能需要或不需要使用convert.jpg步骤(取决于PDF使用的位图格式)。

我在PDF上尝试了这个命令,这是我从一系列JPEG图像中创建的。 提取的JPEG与源图像的字节逐字节相同。 你不可能获得更高的质量。

如果扫描了pdf,则图像已作为pdf的一部分存储。 你只需要用pdfimages提取它们:

 pdfimages my-file.pdf prefix 

要从gm convert获取单个页面,请将[N](N页面编号从0开始)添加到PDF名称,即gm convert foo.pdf[11] out.png以从PDF获取第12页。

对于pdftoppm使用-f N -singlefile ,其中N是从1开始的页码,即pdftoppm -f 12 -singlefile foo.pdf out得到相同的结果。 它似乎总是在输出文件名中添加“.png”,并且无法阻止它。

您可以使用转换并使用-density选项指定更高的密度。

例如。 convert -d 300 foo.pdf bar.png

如果您只想将PDF的特定页面转换为PNG,您可以管道pdftk进行convert ( 如上所述 ),如下所示:

 pdftk document.pdf cat 12 output - | convert - document-page-12.png 

Master PDF Editor(版本2.2)有此选项可用。打开PDF文件,然后转到文件>导出到>图像。 它会显示一个对话框,您可以在其中为输出定义不同的选项。 非常有用。 希望此信息有所帮助。

PDF Mod还允许导出PDF文件的所有页面或单个页面的图像。

  • 在PDF Mod中打开PDF文件
  • 选择页面 –
  • 编辑>导出图像