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

将大型PDF转换为文本的方法?,pdf,text,text-extraction,pdftotext,Pdf,Text,Text Extraction,Pdftotext,有人能推荐一种方法或库,以编程方式将大的(100MB-4GB)PDF转换为文本吗 我通常使用pdftotext(poppler-utils),但对于大文件,它会显示“内存不足”消息,并且只有前6000页左右的页面在输出文本文件中 也许有一种方法可以将这些PDF拆分,然后运行pdftotext,也许有一些方法可以在不消耗内存的情况下成功运行更昂贵的调用,也许另一个库是最好的。。。基本上,我很想听听你的建议。谢谢大家 我们正在解析PDF中的报纸和杂志,并将它们转换为JPEG格式,这不完全相同,但我们

有人能推荐一种方法或库,以编程方式将大的(100MB-4GB)PDF转换为文本吗

我通常使用pdftotext(poppler-utils),但对于大文件,它会显示“内存不足”消息,并且只有前6000页左右的页面在输出文本文件中


也许有一种方法可以将这些PDF拆分,然后运行pdftotext,也许有一些方法可以在不消耗内存的情况下成功运行更昂贵的调用,也许另一个库是最好的。。。基本上,我很想听听你的建议。谢谢大家

我们正在解析PDF中的报纸和杂志,并将它们转换为JPEG格式,这不完全相同,但我们在打开和解析时遇到了相同的问题,但使用imagemagick/ghostscript

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


如果pdftotext不支持,您可能可以使用imagemagick/ghostscript将它们拆分为更小的PDF,因为输入PDF文件中有数千页。每个页面可能包含文本、图像和其他被解压缩的对象,并且可能占用2个或更多内存

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

  • 使用拆分源PDF文件

    • 从命令行使用via脚本:
  • 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)中的实用程序手动拆分文件