pdf2txt - python 中的等价物
pdf2txt -A equivalent in python
我正在尝试从 pdf 中提取可利用的文本。但是像 this one 这样的一些 pdf 似乎有特定的布局,因为我的 python 脚本不能保留空格。
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 page in 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("1002459.pdf"))
结果:
- 1 -
Combininglearningandreasoning:newchallengesforknowledgegraphsFrankvanHarmelen∗∗DptofComputerScience,VrijeUniversite...
所以我尝试在命令中使用 pdf2txt.py
。同样的结果。但是我找到了 -A
选项,它给了我预期的结果:
- 1 -
Combining learning and reasoning: new challenges for
knowledge graphs
Frank van Harmelen∗
我可以用我的 python 脚本获得相同的结果吗?
可以;只需复制 -A
所做的。本质上,麻烦的 PDF 没有 "print" 空格,只有文字,布局分析推断应该有空格。 pdf2txt 通过设置 laparams.all_texts = True
来激活它。
好吧,你甚至可以在 Python 中制作
可以检查下面给出的代码 link 它是在 python
中制作的
我正在尝试从 pdf 中提取可利用的文本。但是像 this one 这样的一些 pdf 似乎有特定的布局,因为我的 python 脚本不能保留空格。
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 page in 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("1002459.pdf"))
结果:
- 1 -
Combininglearningandreasoning:newchallengesforknowledgegraphsFrankvanHarmelen∗∗DptofComputerScience,VrijeUniversite...
所以我尝试在命令中使用 pdf2txt.py
。同样的结果。但是我找到了 -A
选项,它给了我预期的结果:
- 1 -
Combining learning and reasoning: new challenges for
knowledge graphs
Frank van Harmelen∗
我可以用我的 python 脚本获得相同的结果吗?
可以;只需复制 -A
所做的。本质上,麻烦的 PDF 没有 "print" 空格,只有文字,布局分析推断应该有空格。 pdf2txt 通过设置 laparams.all_texts = True
来激活它。
好吧,你甚至可以在 Python 中制作 可以检查下面给出的代码 link 它是在 python
中制作的