我有一个包含文档扫描图像的 PDF。我想将此 PDF 的内容保存为图像,以便我可以通过仅接受 .jpg、.png 和 .gif 类型文件的 OCR 程序运行它。
如何将此 PDF 保存/转换为其中一种图像格式?
编辑:我发现这样做的一种方法是单击每个页面。复制到剪贴板。粘贴到 Paint.net 然后保存。但是,这很麻烦,因为在 Acrobat Reader 中您一次只能选择一页。
wfa*_*ulk 20
请密切注意poyorick 的回答,其中他指出sleske 的回答实际上是针对这个特定问题的更好的回答。
使用GhostScript。这个命令对我有用:
gs -dBATCH -dNOPAUSE -sDEVICE=png16m -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -r150 -sOutputFile=output%d.png input.pdf
Run Code Online (Sandbox Code Playgroud)
有多个 png 伪设备,在颜色深度上有所不同:pngmono、pnggray、png16、png256、png16m 和 pngalpha。选择最适合您的那一个。
您也可以使用 jpeg,但除非您有磁盘空间问题,否则您需要尽可能高的质量来管理您的 OCR,这不是 jpeg。
GhostScript 不再支持 gif,但我无法想象为什么你需要它,支持 png256 是什么。
Dav*_*llo 20
安装Imagemagick。打开一个 cmd 窗口或终端:
convert myfile.pdf myfile.jpg
Run Code Online (Sandbox Code Playgroud)
输出将为 pdf、test-0.jpg、test-1.jpg 等中每个页面的 1 个 jpg 文件。
sle*_*ske 14
还有pdfimages来自Xpdf 工具(可从XpdfReader 站点获得)。它不会将整个 PDF 页面转换为图像,而是会从 PDF 中提取嵌入的图像。
如果 PDF 包含文本和图像,而您只需要图像,这将非常有用。此外,它会以原始格式提取图像,因此不涉及质量损失(与渲染整个页面然后将其转换为例如 JPEG 的程序不同)。根据您的需要,这可能很有用。
简单用法:
pdfimages -j -list mydocument.pdf mydocument-images
Run Code Online (Sandbox Code Playgroud)
这将读取输入文件mydocument.pdf,提取所有图像,并将其写入到单独的文件命名mydocument-images-0000.jpg,mydocument-images-0001.jpg等等。
Option-j使其将嵌入的 JPEG 压缩图像写入为 JPEG 文件,而不是 PBM/PGM/PPM 文件(未压缩且巨大)。请注意,如果图像是这样存储在 PDF 输入文件中的,则图像仍可能被写入为 PBM/PGM/PPM 文件。
Hem*_*ant 11
您可以使用 Adobe Reader 执行此操作:
小智 10
除了提到 pdfimages 的答案外,所有其他答案都没有提到他们的解决方案实际上对嵌入的图像进行了转码。即,这些解决方案不是简单地提取原始图像,而是在该过程中修改它,可能损害图像。只有 pdfimages 提取原始图像。Ghostscript、Imagemagick、Adobe Reader、PDFFill、PDF Xchange Viewer、OS X Preview 和大多数其他 PDF 软件都是如此。