出典:

★注意!テキスト読出は完璧ではなく、形が崩れることもある。

 データにしたら必ず全レコードの形を確認すること。

 

以下、コード例(出典から引用)

 

# 1:ライブラリ設定
import fitz # pymupdfライブラリ
import openpyxl as px 
from openpyxl.styles import Alignment

# 2:PDFテキストを格納するリスト作成
txt_list = []

# 3:PDFファイルを読み込む
filename = 'sample.pdf'
doc = fitz.open(filename)

# 4:1ページずつテキストデータを取得
for page in range(len(doc)):
    text = doc[page].get_text()
    text = text.replace('\n', '')
    txt_list.append([page+1,text])

# 5:新しいExcelファイルを作成
wb = px.Workbook()
ws = wb.active

# 6:Excelの書式設定
my_alignment=Alignment(vertical='top', wrap_text=True)
ws.column_dimensions['B'].width = 100

# 7:Excelのヘッダーを出力
headers = ['ページ', '内容']
for i, header in enumerate(headers):
    ws.cell(row=1, column=1+i, value=headers[i])

# 8:ExcelにPDFのテキストを出力
for y, row in enumerate(txt_list):
    for x, cell in enumerate(row):
        ws.cell(row= y+2, column= x+1, value=cell)
        ws.cell(row= y+2, column= x+1).alignment = my_alignment

# 9:Excelファイルの保存
xlname = filename.split('.')[0] + '_excel.xlsx'
wb.save(xlname)