我有一个包含文档扫描图像的 PDF。我想将此 PDF 的内容保存为图像,以便通过仅接受 .jpg、.png 和 .gif 类型文件的 OCR 程序运行它。
我如何将此 PDF 保存/转换为其中一种图像格式?
编辑:我发现这样做的一个方法是单击每个页面。复制到剪贴板。粘贴到 Paint.net 然后保存。但是,这很麻烦,因为看起来在 Acrobat Reader 中一次只能选择一个页面。
答案1
请密切关注pooryorick 的回答,他指出sleske 的回答对于这个特定问题来说实际上是一个更好的答案。
使用GhostScript。这个命令对我有用:
gs -dBATCH -dNOPAUSE -sDEVICE=png16m -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -r150 -sOutputFile=output%d.png input.pdf
png 伪设备有多种,根据颜色深度进行区分:pngmono、pnggray、png16、png256、png16m 和 pngalpha。选择最适合您的一种。
您也可以使用 jpeg,但除非您有磁盘空间问题,否则您希望 OCR 的质量尽可能高,而 jpeg 并不是最佳选择。
GhostScript 不再支持 gif,但我无法想象为什么你需要它,因为它支持 png256。
答案2
安装Imagemagick. 打开 cmd 窗口或终端:
convert myfile.pdf myfile.jpg
输出将是 pdf 中每一页的 1 个 jpg 文件,test-0.jpg、test-1.jpg 等。
答案3
pdf图像能提取嵌入的图像从 PDF 中获取。它不会将整个 PDF 页面转换为图像。它包含在pdf工具或者波普勒工具类。
如果 PDF 包含文本和图像,而您只需要图像,则此功能非常有用。此外,它将以原始格式提取图像,因此不涉及任何质量损失(与渲染整个页面然后将其转换为 JPEG 等的程序不同)。
列出所有图片来自mydocument.pdf
:
pdfimages -list mydocument.pdf
将 PDF 中的所有图像提取mydocument.pdf
到名为的单独文件中mydocument-image-0000.jpg
,mydocument-images-0001.jpg
等等:
pdfimages -j mydocument.pdf mydocument-image
选项-j
使它将嵌入的 JPEG 压缩图像写入为 JPEG 文件,而不是 PBM/PGM/PPM 文件(未压缩且巨大)。请注意,如果图像在 PDF 输入文件中的存储方式是 PBM/PGM/PPM 文件,则它们仍可能被写入。
如果您使用 Poppler,我建议将其替换为-all
以原始格式写入 JPEG、JPEG2000、JBIG2 和 CCITT 图像。CMYK 文件将写入 TIFF 文件。所有其他图像都将写入 PNG 文件。
答案4
除了提到 pdfimages 的答案外,其他所有答案都没有提到他们的解决方案实际上对嵌入的图像进行了转码。也就是说,这些解决方案并不是简单地提取原始图像,而是在过程中对其进行修改,这可能会损害图像。只有 pdfimages 提取原始图像。Ghostscript、Imagemagick、Adobe Reader、PDFFill、PDF Xchange Viewer、OS X Preview 和大多数其他 PDF 软件都是如此。