我需要将PDF页面转换为图像。有一个写有一些文本的背景图像,因此当我将其另存为图像时,只会保存背景图像。
是否有可用的相同软件,以便可以将整个页面转换为图像?
我需要将PDF页面转换为图像。有一个写有一些文本的背景图像,因此当我将其另存为图像时,只会保存背景图像。
是否有可用的相同软件,以便可以将整个页面转换为图像?
Answers:
安装imagemagick。
使用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]
第一页也是如此)。
所有其他选项(例如修剪,灰度等)都可以在Image Magic的网站上查看。
-density 300
参数
gs -q NOPROMPT ...-sDEVICE=pngalpha -r150x150 -sOutputFile=/var/tmp/Yf%d -f/var/tmp/L -f/var/tmp/Fic1
如果得到,convert: no images defined output.png
则意味着您没有安装ghostscript ...
/etc/ImageMagick-7/policy.xml
文件并PDF
从中删除来手动启用<policy domain="coder" rights="none" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />
您可以pdftoppm
用来将PDF转换为PNG:
pdftoppm input.pdf outputname -png
使用格式这将输出的每一页的PDF outputname-01.png
,与01
作为页面的索引。
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
-r 300
如果您想将x和y分辨率设置为相同的值,则编写起来要容易一些,而不是分别指定x和y分辨率。
IIRC GIMP能够使用PDF,即将它们转换为图像。因此,如果您想立即编辑图像-GIMP是您的朋友。
当前接受的答案可以完成工作,但是会导致输出尺寸较大并且质量下降。
此处给出的答案中的方法所产生的输出的大小与输入的大小相当,并且不会遭受质量损失。
TLDR-用途pdfimages
:pdfimages -j input.pdf output
引用链接的答案:
您不清楚“质量损失”是什么意思。那可能意味着很多不同的事情。您可以张贴一些样本进行说明吗?也许从质量较差和质量好的版本中删除同一部分(作为PNG,以避免进一步的质量损失)。
也许您需要使用
-density
更高的dpi进行转换:convert -density 300 file.pdf page_%04d.jpg
(您可以添加前缀
-units PixelsPerInch
,也可以-units PixelsPerCentimeter
根据需要添加。我的副本默认为ppi。)更新: 正如您指出的那样,
gscan2pdf
(使用方式)只是pdfimages
(来自poppler)的包装。pdfimages
不这样做同样的事情convert
给出一个PDF作为输入时一样。
convert
提取PDF,以某种分辨率进行渲染,然后将生成的位图用作源图像。
pdfimages
在PDF中查找嵌入的位图图像,并将每个图像导出到一个文件中。它只是忽略了PDF中的任何文本或矢量绘图命令。结果,如果您拥有的只是只是一系列位图的包装的PDF,
pdfimages
则提取位图会做得更好,因为它可以为您提供原始大小的原始数据。您可能还希望使用-j
选项pdfimages
,因为PDF可以包含原始JPEG数据。默认情况下,pdfimages
将所有内容都转换为PNM格式,并且将JPEG> PPM> JPEG转换是有损过程。所以,尝试
pdfimages -j file.pdf page
您可能会或可能不会需要遵循与
convert
到.jpg
步骤(取决于PDF是用什么位图格式)。我在以一系列JPEG图像制作的PDF上尝试了此命令。提取的JPEG与源图像逐字节相同。您无法获得更高的质量。
如果扫描了pdf,则图像已作为pdf的一部分存储。您只需要使用以下命令提取它们pdfimages
:
pdfimages my-file.pdf prefix
您可以使用转换并使用-density
选项指定更高的密度 。
例如。 convert -d 300 foo.pdf bar.png
Master PDF Editor(2.2版)具有此选项。打开PDF文件,然后转到“文件”>“导出到”>“图像”。它显示一个对话框,您可以在其中定义输出的不同选项。非常有用。希望此信息对您有所帮助。