0

PythonでPDFを読み込んでテキスト情報をExcelに変換しようと思っています。
このサイト(https://fastclassinfo.com/entry/python_pdf_to_excel/)を参考にしましたが下記のエラーメッセージが発生しました。

AttributeError
'Page' object has no attribute 'getText'

どうかお力添えを賜りたいです。よろしくお願いいたします。

import fitz
import openpyxl as px
from openpyxl.styles import Alignment
 
# プログラム2|PDFテキストを格納するリスト作成
item_list = []
 
# プログラム3|PDFファイルを開く
filename = '20180319001_1.pdf'
doc = fitz.open(filename)
 
# プログラム4|PDFを1ページずつテキストを取得
for page in range(len(doc)):
    textblocks = doc[page].getText('blocks')
    for textblock in textblocks:
        if textblock[4].isspace() == False:
            item_list.append([page,textblock[4]])
 
# プログラム5|新しいエクセルを作成
wb = px.Workbook()
ws = wb.active
 
# プログラム6|エクセルの書式設定
myalignment=Alignment(wrap_text=True, shrink_to_fit=False)
ws.column_dimensions['C'].width = 100
 
# プログラム7|エクセルのヘッダーを出力
headers = ['No', 'ページ', '内容']
for i, header in enumerate(headers):
    ws.cell(row=1, column=1+i, value=headers[i])
 
# プログラム8|エクセルにPDFのテキストデータを出力
for y, row in enumerate(item_list):
    ws.cell(row= y+2, column= 1, value= y+1)
    for x, cell in enumerate(row):
        ws.cell(row= y+2, column= x+2, value=item_list[y][x])
        ws.cell(row= y+2, column= x+2).alignment = myalignment
 
# プログラム9|エクセルファイルの保存
excelname = f'{filename}_excel_convert.xlsx'
wb.save(excelname)

追記
Python 3.9.7
openpyxl Version: 3.0.4
PyMuPDF 1.21.1

CC BY-SA 4.0
3

1 件の回答 1

2

PyMuPDF 1.20.0 ではgetTextget_textに変更すると上手く行くようです。

※ getTextと全く同じ動作をするかは分かりませんが、テキスト情報は取得出来ました。同じ情報が取得できるかどうかは質問者さんにて検証お願いします。

CC BY-SA 4.0
1
  • get_textとしたところ無事にテキスト取得できました。ありがとうございます!
    – hhhh
    2023年1月4日 7:17

この質問に回答するには、ログインする必要があります。

求めていた回答ではありませんか? のタグが付いた他の質問を参照する。