pyPdfとpdfMinerの両方を試して、pdfファイルからテキストを抽出しました。pdfMinerだけが正常に抽出できる不親切なpdfがいくつかあります。ここのコードを使用して、ファイル全体のテキストを抽出しています。getPage(i).extractText()
ただし、 pyPdfの機能のように、ページごとにテキストを抽出したいと思います。pdfMinerを使用してページごとにテキストを抽出する方法を知っている人はいますか?
23142 次
2 に答える
13
for pageNumber, page in enumerate(PDFDocument.get_pages()):
if pageNumber == 42:
#do something with the page
ここにかなり良い記事があります。
于 2012-09-26T18:19:34.937 に答える
8
これは、すべてのページを別々のファイルに書き込む方法です。
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfpage import PDFPage
from pdfminer.converter import XMLConverter, HTMLConverter, TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfparser import PDFParser
import io
import os
fp = open('Files/Company_list/0010/pdf_files/testfile3.pdf', 'rb')
rsrcmgr = PDFResourceManager()
retstr = io.StringIO()
print(type(retstr))
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
interpreter = PDFPageInterpreter(rsrcmgr, device)
page_no = 0
for pageNumber, page in enumerate(PDFPage.get_pages(fp)):
if pageNumber == page_no:
interpreter.process_page(page)
data = retstr.getvalue()
with open(os.path.join('Files/Company_list/0010/text_parsed/2017AR', f'pdf page {page_no}.txt'), 'wb') as file:
file.write(data.encode('utf-8'))
data = ''
retstr.truncate(0)
retstr.seek(0)
page_no += 1
特定のページ番号が必要な場合は、page_noを必要なページ番号に置き換えるだけです。
于 2018-07-21T15:21:57.547 に答える