\

Pythonは、その強力なライブラリと柔軟性により、PDFからテキストを抽出し、それをExcelに変換するための優れたツールです。この記事では、Pythonを使用してPDFからテキストを抽出し、それをExcelに変換する方法を説明します。

必要なライブラリ

このタスクを実行するためには、以下のPythonライブラリが必要です。

  • pdfminer.six: PDFからテキスト情報を抽出するためのライブラリ。
  • openpyxl: 抽出したテキストデータをExcelに書き込むためのライブラリ。

これらのライブラリは、Pythonのパッケージ管理システムであるpipを使用して簡単にインストールできます。

pip install pdfminer.six
pip install openpyxl

PDFからテキストを抽出する

まず、pdfminer.sixライブラリを使用してPDFからテキスト情報を抽出します。以下にそのコードの一部を示します。

from pdfminer3.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer3.converter import PDFPageAggregator
from pdfminer3.pdfpage import PDFPage
from pdfminer3.layout import LAParams, LTTextContainer

resourceManager = PDFResourceManager()
device = PDFPageAggregator(resourceManager, laparams=LAParams())
pdf_file_name = './sample.pdf'

with open(pdf_file_name, 'rb') as fp:
    interpreter = PDFPageInterpreter(resourceManager, device)
    for page in PDFPage.get_pages(fp):
        interpreter.process_page(page)
        layout = device.get_result()
        for lt in layout:
            if isinstance(lt, LTTextContainer):
                print(lt.get_text())
device.close()

このコードは、指定したPDFファイルを開き、各ページを処理してテキスト情報を抽出します。

テキスト情報をExcelに変換する

次に、openpyxlライブラリを使用して抽出したテキスト情報をExcelに書き込みます。以下にそのコードの一部を示します。

import pandas as pd

def pdfminer_config(line_overlap, word_margin, char_margin,line_margin, detect_vertical):
    laparams = LAParams(line_overlap=line_overlap, word_margin=word_margin, char_margin=char_margin, line_margin=line_margin, detect_vertical=detect_vertical)
    resource_manager = PDFResourceManager()
    device = PDFPageAggregator(resource_manager, laparams=laparams)
    interpreter = PDFPageInterpreter(resource_manager, device)
    return  (interpreter, device)

pdf_file_name = './sample.pdf'
work_file = './work_file.xlsx'
list1 = ['','','','','','','','']
df_x = pd.DataFrame([list1])
df_x.columns = ['page', 'word', 'x1','x2','y1','y2','width','hight']
int_page = 0
ii_index = 0

with open(pdf_file_name, 'rb') as fp:
    interpreter, device = pdfminer_config(0.5, 0.1, 0.1, 0.5, False)
    for page in PDFPage.get_pages(fp):
        interpreter.process_page(page)
        layout = device.get_result()
        for lt in layout:
            if isinstance(lt, LTTextContainer):
                df_x.loc[ii_index] = [int_page, lt.get_text(), lt.x0, lt.x1, lt.y0, lt.y1, lt.width, lt.height]
                ii_index += 1
        int_page += 1
df_x.to_excel(work_file)

このコードは、抽出したテキスト情報をExcelファイルに書き込みます。

以上が、Pythonを使用してPDFからテキストを抽出し、それをExcelに変換する基本的なプロセスです。このプロセスは、注文書や見積書などの業務文書を自動化するための強力なツールとなります。ただし、このプロセスは完全ではなく、PDFの形式や内容によっては適切に機能しない場合もあります。そのため、具体的なタスクに合わせてコードを調整することが必要です。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です