pyautoguiによる鍵付きpdfから文字列の抽出、及び、整形の自動化【pythonによるGUI作業の自動化】

pyautoguiによるpdfから文字列の抽出、及び、整形の自動化 プログラム

パスワード付きpdfから文字列を抽出し、編集、及び、整形する作業の自動化をpythonのpyautoguiモジュールで実現します。


尚、今回は文字列をpdfから直接取得する方法をとりません。もっと具体的に言うと、PyPDF2やpdfminerなどのpdf操作のためのモジュールを利用せずに、pdfから文字列を取得して、編集、及び、整形します。
(むしろ、PyPDF2やpdfminerなどのpdf操作のためのモジュールで実現できなかったことを無理やりGUIで対応しようというものです。)


PyPDF2、pdfminerモジュールを利用したい場合は、以下をご参照ください。

pythonでpdfからのテキスト抽出(PyPDF2,pdfminerモジュールでのテキスト抽出)
pythonのPyPDF2,pdfminerモジュールを利用して、pdfファイルからテキスト抽出するプログラムを作成していきます。 プログラム作成の経緯 我が家では、私と妻で1社(ライフカード)のクレジットカードを生活費全般の決済に利用して...

プログラム実行で出来る成果物について

任意のフォルダに存在するLifeカードの利用代金明細書(pdf)から、本人カード、家族カードそれぞれの金額明細を抽出して、表計算ソフトに貼り付けます。
それぞれの金額明細を抽出することで、本人、家族それぞれのカード負担額を明確にします。

なぜこのプログラムを作成したか

Lifeカードの本人カード、家族カードそれぞれの合計額を出すための作業を自動化したかった為です。
Lifeカードの利用代金明細書では、1明細ごとに本人カード、家族カード別の記載はあるのですが、1明細が複数行になっている為、単純な表計算ソフトへの貼り付けだけでそれぞれの合計額を出すことが出来ません。
その為、次の様な作業を毎月手動で行う必要がありました。

毎月手動で行っていた金額明細の整形作業(このプログラムでやっていること)

  1. ダウンロードフォルダから最新のパスワード付きファイルを開く。
  2. 開いたファイルを全選択してコピー。
  3. サクラエディタを新規に開き、コピーした内容を貼り付け。
  4. 貼り付けた内容から余計な改行をタブ文字列に置換。
  5. テキストファイルとして保存。
  6. サクラエディタのgrep機能を利用して、保存したテキストファイルからキーワード(‘本人’)が記載されている行を抽出。
  7. 抽出した結果からキーワード行のみを残して、余分な行を削除。
  8. キーワード行の余分な文字列を削除。
  9. 表計算ソフトを立ち上げて、8.を貼り付け。
  10. 6.~9.をキーワードを変えて(’本人’’→家1’)再作業。
  11. 表計算ソフトを保存。

pythonのソースコード

作成したソースコードは以下です。
(ソースコード内に、コメントを記載したため、解説は割愛します。)

setting.iniの内容

プログラム内で利用しているsetting.iniの内容は以下です。

<>の部分を自身の環境に差し替えて利用します。

事前準備

モジュールの導入

ソースコードの動作にはpythonのインストールに加え、pyautogui,subprocess, configparserモジュールの導入が必要です。
次のコマンドを実行します。

pyautogui モジュールには、キーボード入力、マウス移動、ボタンクリック、マウスのホイール操作をシミュレートする関数があります。
簡単に言うと、人間の代わりにPCを操作することができます。

subprocess, configparserモジュールに関しては別の記事で詳しく説明しているので、よろしければそちらの記事もご覧ください。

pythonとFFMPEGでフォルダ内の複数の動画ファイルの結合(subprocess)
以前の記事(YouTube【作業用BGM】の作成、pythonで実行コマンド作成)では、以下を行ってきました。 記事名内容YouTube【作業用BGM】の作成FFMPEGで複数の動画ファイルを1つの動画ファイルに結合pythonで実行コマン...
python プログラムの直書きを外部ファイル化する話(configparserモジュール)
pythonのconfigparserモジュールを利用して、環境設定情報を外部ファイル化するプログラミングをしていきます。 このプログラムで出来る事 プログラム上に直書きしていた内容を外部ファイルにて管理できるようになります。 例えばログイ...

サクラエディタ、Openoffice Calcの導入

このプログラムでは、サクラエディタ、Openoffice Calcが導入されていることを前提に作成されていますが、わざわざインストールする必要は無く、同じ処理が出来れば似た様なソフトウェアをそのまま利用することが出来ます。
その為、導入方法などはあえて記載しません。
サクラエディタは文字列の置換や、grep検索を、OpenOffice Calcは表計算ソフトとして利用しています。
尚、それぞれプログラムの147行目、169行目にプログラムの展開処理が記載されています。

終わりに

pyautoguiは、この様な作業以外にも任意のプログラムを実行してそこに別のプログラムからの値を貼り付ける作業などを自動化するのにも利用できます。
その為、今回の事例を元に仕事や生活上の繰り返し作業を自動化していければと考えています。

参考)その他の自動化の事例

webサイトへのログインの自動化

pythonのseleniumモジュールで自動ログイン【proxy対応版】
pythonのseleniumモジュールを利用して、GoogleChrome上のWebサイトへ自動ログインするプログラミングをしていきます。 proxy対応無し版、proxy対応有り版の両方を記載していきます。 このプログラムで出来る事 手...

英語⇔日本語翻訳の自動化(Lineボット利用)

Google Apps ScriptとLINEボットで翻訳アプリ作成 – GASによる翻訳アプリの作成 – 
Google Apps Script(GAS)のLanguageAppを利用して、英語と日本語の双方向の翻訳をするLINEボットをプログラミングをしていきます。 GoogleのOCR技術を利用して、テキストだけではなく、画像内の文字列に対し...

コメント

タイトルとURLをコピーしました