首页 > 解决方案 > 如何在不更改文本格式的情况下从 PDF 中提取文本?

问题描述

我正在尝试从多个 PDF 文件中提取文本,但是,在尝试了列出的大多数解决方案之后,我仍然无法从 PDF 文档中逐行提取文本,而格式会变得完全疯狂。我已经用 java 编写了程序,它运行良好(附加代码),请任何人建议我如何在 python 中完成相同的任务。

Java 代码

File file = new File(Path);
    PDDocument document = PDDocument.load(file);
    //Instantiate PDFTextStripper class
    PDFTextStripper pdfStripper = new PDFTextStripper();
    //Retrieving text from PDF document

    String text = pdfStripper.getText(document);

示例输出:第 1 行在 pdf 上突出显示\n 第 2 行在 pdf\n 上突出显示等。

Python代码

def convert_pdf_to_string(file_path):
output_string = StringIO()
with open(file_path, 'rb') as in_file:
    parser = PDFParser(in_file)
    doc = PDFDocument(parser)
    rsrcmgr = PDFResourceManager()
    device = TextConverter(rsrcmgr, output_string, laparams=LAParams())
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    for page in PDFPage.create_pages(doc):
        interpreter.process_page(page)

return(output_string.getvalue())

#循环浏览文件夹中的文件并开始提取内容

for x in list1:
g = convert_pdf_to_string((oldDir + "\\" + x))
print(g)

示例输出:令牌\n 令牌\n 令牌\n 令牌\n 等。

标签: pythonpdftextextract

解决方案


推荐阅读