gpt4 book ai didi

Python pdfminer LAParams 混合文本输出

转载 作者:太空宇宙 更新时间:2023-11-04 02:36:43 25 4
gpt4 key购买 nike

我有一个 pdf 文件,我想用 pdfminer 解析它的文本。问题是 LAParams 有时会失败并在最后给出该行的一部分。我不明白为什么。我的 pdf 看起来像这样: pdf输出看起来像这样: output我的代码在这里,提前致谢:

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from io import StringIO

def convert_pdf_to_txt(path):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, codec=codec , laparams=laparams)
fp = open(path, 'rb')
interpreter = PDFPageInterpreter(rsrcmgr, device)
password = ""
caching = True
pagenos=set()

for PageNumer,page in enumerate(PDFPage.get_pages(fp, pagenos , password=password,caching=caching, check_extractable=True)):
interpreter.process_page(page)

text = retstr.getvalue()

fp.close()
device.close()
retstr.close()
return text
print(convert_pdf_to_txt('C:\\Users\\Vagos\\Desktop\\europe.pdf'))

最佳答案

我自己找到了答案。

问题

布局分析参数LAParams() (pdfminer.six 的文档)默认为 0.1word_margin:

class pdfminer.layout.LAParams(line_overlap: float = 0.5, char_margin: float = 2.0, line_margin: float = 0.5, word_margin: float = 0.1, boxes_flow: Optional[float] = 0.5, detect_vertical: bool = False, all_texts: bool = False)

对于未激活的 pdfminer,请参阅 LAParams() 的源代码.

我的文档显然有时会出现更大的字边距,这会导致出现问题。

解决方案

使用 LAParams(char_margin = 20) 以 20 启动 char_margin 解决了这个问题。

关于Python pdfminer LAParams 混合文本输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47730307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com