メインコンテンツへスキップ
見出し画像

【Python勉強メモ】PDFから文字を抽出プログラムを作ってみた

    PDFから文字を抽出したい!

    Pythonなら簡単にできますよ(^^)

    プログラミング副業挑戦中の そばごろう です。

    twitter ☛https://twitter.com/sobagoro1

    今回はChatGPTにPythonでPDFから文字を抽出プログラムプログラムを書いてもらう手順をまとめます。

    1.ChatGPTを起動

    https://chat.openai.com/

    2.以下のプロンプトを入力

    Pythonで以下のプログラムを書いて
    1、PDFを選択し、PDFの中に含まれる文字を抽出
    2、抽出した文字をポップアップで表示する、その内容をコピーできるボタンを画面上部に表示
    ※メッセージとコメントは日本語で記載
    ※PySimpleGUIを使用

    ChatGPTに入力したプロンプト

    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()

    ChatGPTが書いたプログラムソース

    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

    あなたへのおすすめ