有人建议使用方法或库以编程方式将大型(100MB - 4GB)PDF转换为文本吗?
我通常使用pdftotext(poppler-utils),但它显示大文件的“Out of memory”消息,并且输出文本文件中只有前6000页左右。
也许有办法将这些PDF分开,然后运行pdftotext,也许有方法可以成功运行更昂贵的电话,而不会占用内存,也许另一个图书馆是最好的...基本上,我很想听听你的建议。谢谢大家!
答案 0 :(得分:2)
我们正在从PDF解析报纸和杂志并将它们转换成JPEG,不完全相同,但是在打开和解析时我们也有同样的内存问题但是使用了imagemagick / ghostscript。
我们的解决方案是将它们分成10页以下的批次,一次解析一批,然后按顺序放置结果,或者将文本附加到存储它的位置。
如果pdftotext不支持,可以使用imagemagick / ghostscript将它们拆分成较小的PDF
答案 1 :(得分:0)
因为输入PDF文件中有数千页。每个页面可能包含解压缩的文本,图像和其他对象,并且可能占用x2或更多内存。
因此,您可以将文件拆分3000页,如下所示:
使用
拆分源PDF文件 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实用程序手动分割文件。