我正在尝试从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脚本获得相同的结果吗?
答案 0 :(得分:0)
您可以;只需复制-A
的内容即可。从本质上讲,麻烦的PDF不会“打印”空格,而只是“单词”,并且布局分析会推断出应该在间隙中留有空格。 pdf2txt通过设置laparams.all_texts = True
来激活它。
答案 1 :(得分:-1)
您甚至可以在Python中制作 可以检查下面给定链接中的代码,它是由python制作的