将大型PDF转换为文本的方法?

时间:2016-03-17 15:07:20

标签: pdf text text-extraction pdftotext

有人建议使用方法或库以编程方式将大型(100MB - 4GB)PDF转换为文本吗?

我通常使用pdftotext(poppler-utils),但它显示大文件的“Out of memory”消息,并且输出文本文件中只有前6000页左右。

也许有办法将这些PDF分开,然后运行pdftotext,也许有方法可以成功运行更昂贵的电话,而不会占用内存,也许另一个图书馆是最好的...基本上,我很想听听你的建议。谢谢大家!

2 个答案:

答案 0 :(得分:2)

我们正在从PDF解析报纸和杂志并将它们转换成JPEG,不完全相同,但是在打开和解析时我们也有同样的内存问题但是使用了imagemagick / ghostscript。

我们的解决方案是将它们分成10页以下的批次,一次解析一批,然后按顺序放置结果,或者将文本附加到存储它的位置。

如果pdftotext不支持,可以使用imagemagick / ghostscript将它们拆分成较小的PDF

答案 1 :(得分:0)

因为输入PDF文件中有数千页。每个页面可能包含解压缩的文本,图像和其他对象,并且可能占用x2或更多内存。

因此,您可以将文件拆分3000页,如下所示:

  1. 使用

    拆分源PDF文件
  2. pdfsplit input.pdf 1 3000 output1-3000.pdf

    pdfsplit input.pdf 3001 6000 output3001-6000.pdf

    1. 运行pdftotext将pdf转换为文本文件;

    2. 然后最终合并输出文件:

    3. cat output1-3000.txt output3001-6000.txt > output-all-pages.txt

      您也可以在步骤(1)中使用PDFSam实用程序手动分割文件。