【问题标题】:Method to convert large PDFs to text?将大型PDF转换为文本的方法?
【发布时间】:2016-03-17 15:07:20
【问题描述】:

谁能推荐一种方法或库以编程方式将大型 (100MB-4GB) PDF 转换为文本?

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

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

【问题讨论】:

    标签: pdf text text-extraction pdftotext


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      1. 使用分割源 PDF 文件

      pdfsplit input.pdf 1 3000 output1-3000.pdf

      pdfsplit input.pdf 3001 6000 output3001-6000.pdf

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2015-01-07
        • 2011-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多