自动将PDF转换为图片

35 投票
7 回答
71644 浏览
提问于 2025-04-15 17:38

我所在的州发布了一些数据,都是PDF格式的。不过更糟糕的是,这些PDF大部分(可能全部)看起来都是用Office打的信件,打印或传真后再扫描的(我们的政府真是太棒了,对吧?)。一开始我以为是我自己在想太多,但后来我发现很多PDF都是“倾斜”的,像是扫描的时候没有对准扫描仪。所以,我想,能从这些文件中提取出实际的文字,最好的办法就是把每一页变成图片。

显然,这个过程需要自动化,如果可以的话,我希望用Python来实现。如果Ruby或Perl有特别好用的实现,我也可以考虑用它们。我试过用pyPDF来提取文字,但效果并不好。我还试过swftools,但从中得到的图片几乎完全无法使用。看起来在转换过程中字体都坏掉了。我其实对输出的图片格式并不太在意,只要它们相对轻便,且能看得懂就行。

7 个回答

6

Ghostscript 是一个非常适合将 PDF 文件转换成图片的工具。它非常可靠,并且有很多可以调整的选项。它可以在 GPL 许可证或商业许可证下使用。你可以通过命令行来调用它,或者使用它的原生 API。想了解更多信息,可以参考以下链接:

10

你可以在命令行中调用比如说 pdftoppm 这个工具(或者用Python的 subprocess 模块),然后把生成的PPM文件转换成你想要的格式,比如使用ImageMagick(同样可以用 subprocess 或者如果有的话用一些绑定库)。

15

如果这些PDF文件实际上是扫描的图片,那么你不应该把PDF转换成图片,而是应该直接从PDF中提取出图片。很可能,PDF里的所有内容其实就是一张巨大的图片,只是用PDF的格式包装了一下,以便在Acrobat中能正常显示。

你可以试试一个简单的方法,就是在PDF中找到图片,然后把数据提取出来:从PDF中提取JPG图片。那里的代码非常简单,但可能有很多原因导致它在你的PDF文件上无法正常工作。不过如果能成功,你就能很快、轻松地把图片数据从PDF中提取出来。

撰写回答