任何人都可以建议一种以编程方式将大型(100MB-4GB)PDF转换为文本的方法或库吗?
我通常使用 pdftotext (poppler-utils),但它为大文件显示"内存不足"消息,并且输出文本文件中只有前 6000 页左右
。也许有一种方法可以将这些PDF拆分然后运行pdftotext,也许有方法可以在不占用内存的情况下成功运行更昂贵的调用,也许另一个库是最好的......基本上,我很想听听你的建议。谢谢大家!
我们正在从PDF解析报纸和杂志并将它们转换为JPEG,不完全相同,但是在打开和解析时,我们使用imagemagick/ghostscript时,我们在内存中遇到了同样的问题。
我们的解决方案是将它们分成 10 页以下的批次,一次解析一个批次,然后将结果按顺序排列,或者将文本附加到存储它的位置。
如果pdftotext不支持,您可以使用imagemagick/ghostscript将它们拆分为较小的PDF。
因为输入PDF文件中有数千页。每个页面可能包含文本、图像和其他对象,这些对象经过解压缩,可能占用多达 x2 或更多内存。
因此,您可以将文件拆分为 3000 页,如下所示:
-
使用 拆分源 PDF 文件
- 通过 PDFSplit 脚本从命令行使用 Ghostscript:
pdfsplit input.pdf 1 3000 output1-3000.pdf
pdfsplit input.pdf 3001 6000 output3001-6000.pdf
-
运行
pdftotext
将pdf转换为文本文件; -
最后合并输出文件:
cat output1-3000.txt output3001-6000.txt > output-all-pages.txt
您也可以在步骤(1)中使用PDFSam实用程序手动拆分文件。