確定申告時期ですね。
クレジットカードの電子明細pdfからデータを転記するのがめんどくさかったので、pdfminerを使ってCSVに変換するpythonスクリプトを作りました。
イオンカードと楽天カードの形式に対応してます。
github.com
イオンカード
$ python3 ./app/extractAeoncardPdf.py /mnt/d/tmp.wsl/meisai202009.pdf
('ご利用カード', 'イオンカード') ('今回ご請求金額', 99999) ('お支払日', '2020年9月2日(水)')
:
出力
ご利用カード イオンカード
今回ご請求金額 99999
お支払日 2020年9月2日(水)
ご利用明細
20/06/30 本人 AMAZON.CO.JP 1回 3333
20/07/11 本人 AMAZON.CO.JP 1回 4444
:
20/07/20 本人 ALIEXPRESS.COM 1回 5555
$ python3 ./app/extractRaktenCardPdf.py /mnt/d/tmp.wsl/statement_202101.pdf
('ご利用カード', '楽天カード(VISA)') ('今回ご請求金額', 99999) ('お支払日', '2021年01月ご請求金額')
:
2枚以上の明細のあるものは、サンプルがなかったため、対応できませんでした。
ところで、どちらもウェブサイトでCSV形式を選択すればCSVをダウンロードできます。このスクリプトは、間違ってpdfをダウンロードして後から気が付いた人向けのものになります。
ほかのPDF用のパーサーを作る
レイアウトをPDFごとに手動で定義して、パーサーを作る必要があります。
以下の手順で実装します。
- Pdf文字列の座標一覧を取得
- 必要な文字を構成する座標群の選定
- 座標群から文字を読み出すコードの作成
座標の取得方法は、gettingstarted.pyを参考にしてください。
パーサーの実装は、parserディレクトリは以下を参考にしてください。
制作のご依頼はツイッターか何かでご連絡ください。(無償ではやりません)