Python PyPDF2-PdfileReader-无法提取文本
我在一个目录中循环,阅读了大量的PDF文件。我使用循环从每个页面提取所有文本信息 5/13 PDF在尝试使用.getNumPages()时引发错误:发生异常:ValueError基为10:b“”的int()无效文本。我认为发生此错误是因为对象(PyPDF2)显示numPages:0 现行代码Python PyPDF2-PdfileReader-无法提取文本,python,text-extraction,pypdf2,Python,Text Extraction,Pypdf2,我在一个目录中循环,阅读了大量的PDF文件。我使用循环从每个页面提取所有文本信息 5/13 PDF在尝试使用.getNumPages()时引发错误:发生异常:ValueError基为10:b“”的int()无效文本。我认为发生此错误是因为对象(PyPDF2)显示numPages:0 现行代码 我不明白为什么只有某些PDF会出现这个问题。任何帮助都将不胜感激 我在使用PyPDF2时也遇到了同样的问题,所以我使用了另一个名为slatepython库 安装库 pip install slate3k
我不明白为什么只有某些PDF会出现这个问题。任何帮助都将不胜感激 我在使用
PyPDF2
时也遇到了同样的问题,所以我使用了另一个名为slate
python库
- 安装库
pip install slate3k
- 然后使用下面的代码
import slate3k as slate with open(file.pdf, 'rb') as f: extracted_text = slate.PDF(f) print(extracted_text)
#pip install pdfminer.six
import io
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
def convert_pdf_to_txt(path):
'''Convert pdf content from a file path to text
:path the file path
'''
rsrcmgr = PDFResourceManager()
codec = 'utf-8'
laparams = LAParams()
with io.StringIO() as retstr:
with TextConverter(rsrcmgr, retstr, codec=codec,
laparams=laparams) as device:
with open(path, 'rb') as fp:
interpreter = PDFPageInterpreter(rsrcmgr, device)
password = ""
maxpages = 0
caching = True
pagenos = set()
for page in PDFPage.get_pages(fp,
pagenos,
maxpages=maxpages,
password=password,
caching=caching,
check_extractable=True):
interpreter.process_page(page)
return retstr.getvalue()
if __name__ == "__main__":
print(convert_pdf_to_txt('test.pdf'))
有关此盖子的详细信息。你可以参考下面的链接
如果出现任何问题,请检查并回复我。我已经测试了一些pdf库,我注意到阅读pdf文件最好 下面是代码示例:
import fitz
doc = fitz.open("file.pdf")
for page in doc:
text = page.getText()
print(text)
pdf文件可能在某种程度上与普通pdf不同。您可以尝试在查看器中打开它们,然后再次将它们另存为pdf,以尝试修复这些偏差。我尝试了此操作,但没有成功。@alexlong,您可以共享您的pdf吗?这是处理pdf的最佳库。此操作更有效!非常感谢。
import fitz
doc = fitz.open("file.pdf")
for page in doc:
text = page.getText()
print(text)