[英]PyPDF2 - PdfFileReader - cannot extract text
我正在循環瀏覽一個目錄並閱讀大量 PDF。 我正在使用循環從每個頁面中提取所有文本信息。
5/13 PDF 在嘗試使用時拋出錯誤。getNumPages(): 發生異常: ValueError 無效的 int() 字面量為 10: b''。 我相信發生此錯誤是因為 object (PyPDF2) 顯示 numPages: 0。
dir = os.listdir(directory)
for f in dir:
object = PyPDF2.PdfFileReader(directory + '\\' + f)
NumPages = object.getNumPages()
text_output = "" # Initiate Variable
# Loop through all pages and extract/merge text
with open(directory + '\\' + f, mode='rb') as FileName:
reader = PyPDF2.PdfFileReader(FileName)
for p_num in range(0, NumPages):
page = reader.getPage(p_num)
text_output = text_output + '\n' + 'PAGE: ' + \
str(p_num + 1) + '\n' + page.extractText()
我添加了一張顯示 object 數據的圖像,其中 numPages: 0
我不明白為什么只有某些 PDF 有這個問題。 任何幫助,將不勝感激!!
我測試了幾個 pdf 庫,我注意到PyMuPDF最適合閱讀 pdf 文件。
這里的代碼示例:
import fitz
doc = fitz.open("file.pdf")
for page in doc:
text = page.getText()
print(text)
好吧,我也遇到了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)
我使用 pdfminer 提取 pdf。
您可以參考示例代碼。
#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'))
有關此蓋子的更多信息。 你可以參考下面的鏈接
如果有任何問題,請檢查並回復我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.