我正在使用PyPDF2将pdf转换为文本转换,在这段代码中有些单词混在一起,代码如下所示:-
filename = 'CS1.pdf'
pdfFileObj = open(filename,'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
num_pages = pdfReader.numPages
count = 0
text = ""
while count < num_pages:
pageObj = pdfReader.getPage(count)
count +=1
print(pageObj)
text += pageObj.extractText()
if text != "":
text = text
else:
text = textract.process('/home/ayush/Ayush/1june/pdf_to_text/CS1.pdf', method='tesseract', language='eng')
print(text)
输出:-
计算机科学与工程专业的研究生课程
我怎么期望
到,追求,研究生,研究,计算机,科学和工程学
答案 0 :(得分:0)
请尝试添加
text += pageObj.extractText()
print(pageObj.extractText())
文本在连接前的那个阶段如何显示?
我可能已经找到了原因。下载iText RUPS来检查pdf。该工具显示了如何呈现内容并将其放置在页面上。
导航到Stream
在右下角您可以阅读
我不熟悉PDF规范,但是this的回答状态
这些数字将相应的文本位置调整该数量。 数字以文本空间单位的千分之一表示。 根据官方PDF规范,此“金额应减去 从当前水平或垂直坐标开始。”一个正数 因此,水平书写时,下一个字符串将向左移动。 负数将其向右移动。
我怀疑PyPDF2
不会将数字解释为空格。这可能不是那么容易,因为您必须知道多少个像素等于空格字符。
我快速浏览了另一个pdf文件,并且正确读取了带空格而不是数字的文本。请尝试。
如果这是问题所在,则下一步是直接迭代iText RUPS中所示的元素。这有点麻烦,但可能。您可以找到PyPDF2
的示例。