我正在尝试编写一个程序将多页 PDF 批量转换为纯文本(想想很多页教科书)。如果我运行它
PyPDF2
,我会发现如果特定页面有 2 列,则读取不正确的问题。
我发现的最好的解决方案是使用OCRmyPDF将扫描的PDF转换为文本PDF,并在R中使用
tabulizer::extract_text()
(通过this解决方案,它是tabula PDF的R包装器,它有一个python 包装器,但此函数基于 Apache PDFBox,它没有 当前的 python 包装器)。我能找到的唯一 Python 解决方案是使用 1 列和 2 列选项运行 tesseract
并选择具有更多语义信息的选项,但这非常慢。
一般来说,从多列 PDF 中提取文本是一项具有挑战性的任务。如果你想提取纯文本,你可能需要在linux下使用
pdftohml
命令:https://manpages.ubuntu.com/manpages/trusty/man1/pdftohtml.1.html
它在提取多列文本方面做得不错。
此实用程序存在适用于 Windows 的端口。
如果您对结果满意,您可以从 python 自动执行 shell 命令。