
【Python勉強メモ】PDFから文字を抽出プログラムを作ってみた
PDFから文字を抽出したい!
Pythonなら簡単にできますよ(^^)
プログラミング副業挑戦中の そばごろう です。
twitter ☛https://twitter.com/sobagoro1
今回はChatGPTにPythonでPDFから文字を抽出プログラムプログラムを書いてもらう手順をまとめます。
1.ChatGPTを起動
2.以下のプロンプトを入力
Pythonで以下のプログラムを書いて
1、PDFを選択し、PDFの中に含まれる文字を抽出
2、抽出した文字をポップアップで表示する、その内容をコピーできるボタンを画面上部に表示
※メッセージとコメントは日本語で記載
※PySimpleGUIを使用
3.ChatGPTの返事を確認する
すぐに返答が表示されました。
何回かやり取りして使い勝手が良いプログラムに修正しました。
以下のリンクでChatGPTとのやり取りを共有します。
最終的なソース
import PySimpleGUI as sg
import PyPDF2
# PDFファイルからテキストを抽出する関数
def extract_text_from_pdf(pdf_file):
text = ""
with open(pdf_file, "rb") as f:
pdf_reader = PyPDF2.PdfReader(f)
for page_num in range(len(pdf_reader.pages)):
text += pdf_reader.pages[page_num].extract_text()
return text
# メインGUIのレイアウト
layout = [
[sg.Text("PDFファイルを選択してください:")],
[sg.InputText(key="-FILE-", disabled=True), sg.FileBrowse("ファイル選択")],
[sg.Button("テキスト抽出"), sg.Button("クリップボードにコピー", key="-COPY-", disabled=True)],
[sg.Multiline("", size=(60, 20), key="-OUTPUT-", disabled=True)]
]
# GUIのウィンドウを作成
window = sg.Window("PDFテキスト抽出アプリ", layout)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
if event == "テキスト抽出":
pdf_file = values["-FILE-"]
extracted_text = extract_text_from_pdf(pdf_file)
window["-OUTPUT-"].update(extracted_text)
window["-COPY-"].update(disabled=False)
if event == "-COPY-":
copied_text = values["-OUTPUT-"]
sg.clipboard_set(copied_text)
# ウィンドウを閉じる
window.close()
4.作成したプログラムの動作確認
ChatGPTに作成してもらったソースをVS Codeに貼り付けて動作確認します。

デバッグ実行ボタンを押すと以下のGUIが表示されました。
Tkinterだと思ったような画面にならなかったのでPySimpleGUIを使用するように指定しました。

以下リンクのPDFをローカルに保存します。
PowerPoint プレゼンテーション (meti.go.jp)
保存したPDFを「ファイル選択」ボタンを押して読み込ませてみます。

ファイル選択後に「テキスト抽出」ボタンを押すと画面に読み込んだテキストが表示されました。

「クリップボードにコピー」ボタンを押して、メモ帳に貼り付けると抽出した文字列がコピーできていました。

5.作成したプログラムのexe化
以前解説した手順で作成したプログラムのexe化します。
今回は3つのライブラリをインストールしました。
pip install PySimpleGUI
pip install PyPDF2
pip install pyinstaller
アイコンを指定してexe化するコマンドを実行
pyinstaller -F -w --icon=document.ico PDFtoTEXT.py
exeファイルができました(^^)/

exeを実行して動作確認できたら完了です。
まとめ
ChatGPTにPythonでPDFから文字を抽出プログラムプログラムを書いてもらう手順をまとめました。
同じように勉強中の方の参考になればうれしいです。
私のプロフィール↓
勉強メモ シリーズ↓
ChatGPTを使ったプログラミング↓
最期まで閲覧ありがとうございましたm(__)m