是否有可用的相同软件,以便整个页面都可以转换为图像?
#1 楼
您可以使用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
评论
非常感谢。质量比imagemagick或graphicsmagick好得多!
– dAnjou
13年9月9日,0:18
pdftoppm比转换快得多
– Zuo
13年11月6日在4:52
这确实比imagemagick好得多。在我看来,Imagemagick实际上以一种意想不到的方式改变了颜色!
– NoBackingDown
2015年9月17日下午7:16
很好!但是编写-r 300而不是在要将x和y分辨率设置为相同值时分别指定x和y分辨率会稍微容易一些。
– mlc
15-10-20在14:52
我使用pdftoppm取得了比imagemagick更大的成功。
–迈克尔·海斯(Michael Hays)
18年4月14日在7:30
#2 楼
安装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
会将PNG,JPG和MIFF文件格式的压缩率设置为xxx
(100表示不压缩)。[666]
只能将第667页转换为PNG(从零开始的编号,因此[0]
是第一页)。 所有其他选项(如修剪,灰度等)都可以在Image Magic的网站上查看。
评论
答案是可以的,但是分辨率很差。因此,当前没有一个有用的答案。也许如果convert具有一些可以指定的参数,则可能会更改。
–伊利亚·林恩(Elijah Lynn)
15年1月16日在19:57
这个答案是更高质量的askubuntu.com/a/50180/11929
–伊利亚·林恩(Elijah Lynn)
15年1月16日在20:06
您可以通过添加-density 300参数来更改密度
–OHLÁLÁ
2015年4月1日在12:18
因此,有人可以确认指定密度使其与此处的其他答案“一样好”吗?另外,作为对跟随者的说明,ImageMagick呼出“ ghostscript”以实际从pdf转换为png,例如:gs -q NOPROMPT ... -sDEVICE = pngalpha -r150x150 -sOutputFile = / var / tmp / Yf%d -f / var / tmp / L -f / var / tmp / Fic1,如果您进行了转换:没有定义图像output.png,则意味着您没有安装ghostscript ...
–rogerdpack
17 Mar 3 '17 at 17:29
在imagemagick中解析PDF已被禁用-bugs.archlinux.org/task/59778-可以通过编辑/etc/ImageMagick-7/policy.xml文件并从
–杰索
18/12/10在18:58
#3 楼
IIRC GIMP能够使用PDF,即将其转换为图像。因此,如果您想立即编辑图像-GIMP是您的朋友。评论
GIMP确实可以打开PDF,每一页都是一层。选择“导出为”似乎仅保存当前层,但是您可以在导出后轻松删除该层并再次运行“导出为”。
– Dan Dascalescu
19年8月12日在8:34
从Ubuntu 19.04中打包的当前各个版本开始,我发现GIMP产生的转换质量比imagemagick高得多。
– durette
19年12月1日在18:38
#4 楼
当前接受的答案可以完成工作,但是会导致输出尺寸较大并且质量下降。此处给出的答案中的方法所产生的输出的大小与输入的大小相当,并且不会遭受质量损失。
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)的包装。当给定PDF时,pdfimages
做的与
convert
所做的不一样。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图片序列。提取的JPEG与源图像逐字节相同。您无法获得比这更高的质量。
评论
如果PDF是用Illustrator或Acrobat之类的东西创建的可打印的PDF,这是OP问题的不正确解决方案,因为pdfimages仅从PDF中提取图像,而不会展平整个页面并将整个页面导出为图像。
–GuyPaddock
20-05-14在15:22
@GuyPaddock感谢您指出。
– Anmol Singh Jaggi
20年5月15日8:00
#5 楼
如果扫描了pdf,则图像已作为pdf的一部分存储。您只需要用pdfimages
提取它们即可:pdfimages my-file.pdf prefix
评论
这是扫描pdf的完美解决方案,因为您可以使用一个命令提取原始jpg,而无需进一步重新压缩。
–乔斯·戈麦斯(JoseGómez)
16年1月31日在22:49
如果PDF是用Illustrator或Acrobat之类的东西创建的可打印的PDF,这是OP问题的不正确解决方案,因为pdfimages仅从PDF中提取图像,而不会展平整个页面并将整个页面导出为图像。
–GuyPaddock
20-05-14在15:22
#6 楼
如果仅要将PDF的特定页面转换为PNG,则可以将pdftk
传递到convert
(如上所述),如下所示:pdftk document.pdf cat 12 output - | convert - document-page-12.png
#7 楼
要从gm convert获得单个页面,请在PDF名称中添加[N](其中N的页码从0开始),即gm convert foo.pdf[11] out.png
从PDF获取第12页。 pdftoppm
,其中N是从1开始的页码,即相同结果的-f N -singlefile
。它似乎总是将“ .png”添加到输出文件名,并且没有办法阻止它。#8 楼
您可以使用convert并使用-density
选项指定更高的密度。例如。
convert -d 300 foo.pdf bar.png
评论
您能否进一步解释什么是密度及其可以做什么?
–rɑːdʒɑ
14年7月24日在4:03
@AgentCool它指定水平和垂直图像密度(以ppi为单位)。
– Arjun
2014年7月27日在10:02
#9 楼
pdftocairo file.pdf -png
(由Anthony Ebert发布,作为“如何将PDF转换为图像?”的评论)#10 楼
Master PDF Editor(2.2版)内置了此选项。打开PDF文件,然后转到File> Export to> Images。它显示一个对话框,您可以在其中定义输出的不同选项。非常有用。希望此信息对您有帮助。
评论
是免费版还是付费版?在我的版本中,该选项显示为灰色?这是否意味着我需要付款?有付费版本吗?
–约书亚·罗宾逊(Joshua Robison)
17年7月7日在2:25
#11 楼
您可以使用ghostscript进行此操作:gs -dSAFER -dBATCH -dNOPAUSE -r300 -sDEVICE=png16m -dFirstPage=1 -dLastPage=1 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -sOutputFile=output.png input.pdf
有关详细信息,请参见https://www.ghostscript.com/doc/9.52/Devices.htm
#12 楼
PDF Mod还允许导出PDF文件的全部或单个页面的图像。在PDF Mod中打开PDF文件
选择页面-
编辑>导出图像
评论
显然,inkscape也可以实现:stackoverflow.com/a/15484727/32453我没有10位代表发布答案,所以这是另一种方法,请使用MuPDF。 mutool convert -o file.png file.pdf
在bash上:pdftocairo file.pdf -png
PDFBox也做得很好。 pdfbox.apache.org