監視フォルダに格納されたPDFファイルからテキスト抽出を行い特定の文字を取得後、PDFのカスタムプロパティに設定します。
テキスト抽出支援ツール を使用することで簡単にテキスト抽出の設定が作成できます。帳票の種類が複数あっても、帳票毎の取得マクロを作成すれば対応できます。
設定を作成すれば、大量のPDFファイルを対象にすべて属性設定をすることが可能なので、電子帳簿保存法の対応も短時間で対応できます。
取引先名、請求金額、請求日を取得して CSVファイルに出力 してExcelファイルにインポートすれば、検索が可能になります。
以下の動画をご覧ください。(4:40から処理の実行デモが始まります。)
C:\Homeの下に、以下のような構成でフォルダを作り、準備します。
フォルダ構成は以下の通りです。
以下のフォルダに解凍すると設定が適用されます。
C:\Users\ユーザー名\AppData\Roaming\TechnoStyle\eDocArrangement2
グローバルデータの内容は以下の通りです。
| 名前 | 値 |
|---|---|
TopFolder |
C:\Home\eDocArrangement2\Demo\PDFのテキスト抽出と属性設定2 |
SystemFolder |
{%GET_G(TopFolder)}\90_System
|
共通ログ設定の内容でログを出力する。
メイン画面のファイルリストを対象に繰り返し処理を行う。
ループ毎にユーザーデータをクリアする。
以下のマクロを実行する。
#PDFファイルをオープン
{%PDF_OPEN({%GET(FullPathFileName)})}
# 座標領域を設定
{%SET_U(領域指定,Page,All,取引先名,X,21.31)}
{%SET_U(領域指定,Page,All,取引先名,Y,55.94)}
{%SET_U(領域指定,Page,All,取引先名,BottomRightX,30.95)}
{%SET_U(領域指定,Page,All,取引先名,BottomRightY,62.99)}
{%SET_U(領域指定,Page,All,請求金額,X,139.9)}
{%SET_U(領域指定,Page,All,請求金額,Y,69.47)}
{%SET_U(領域指定,Page,All,請求金額,BottomRightX,168.25)}
{%SET_U(領域指定,Page,All,請求金額,BottomRightY,74.47)}
{%SET_U(領域指定,Page,All,請求日,X,244.41)}
{%SET_U(領域指定,Page,All,請求日,Y,12.58)}
{%SET_U(領域指定,Page,All,請求日,BottomRightX,262.02)}
{%SET_U(領域指定,Page,All,請求日,BottomRightY,18.14)}
# PDFテキスト抽出
{%PDF_EXTRACT_TEXT(1,抽出データ,領域指定)}
# テキストを取得
{%SET_U(属性,取引先名,{%JOIN(抽出データ,Pages,1,Rect,取引先名,Texts, )})}
{%PDF_SET_DOCUMENT_ATTRIBUTE(取引先名,{%GET_U(属性,取引先名)})}
{%SET_U(属性,請求金額,{%JOIN(抽出データ,Pages,1,Rect,請求金額,Texts, )})}
#カンマを削除
{%SET_U(属性,請求金額,{%REPLACE({%GET_U(属性,請求金額)},|,,)})}
{%PDF_SET_DOCUMENT_ATTRIBUTE(請求金額,{%GET_U(属性,請求金額)})}
{%SET_U(属性,請求日,{%JOIN(抽出データ,Pages,1,Rect,請求日,Texts, )})}
{%PDF_SET_DOCUMENT_ATTRIBUTE(請求日,{%GET_U(属性,請求日)})}
#クローズ
{%PDF_CLOSE()}
文書を以下の通り移動する。
| 移動元 | {%GET(FullPathFileName)} |
|---|---|
| 移動先 | {%GET_G(TopFolder)}\20_出力 |
移動先に同名の文書がある場合は、ファイル名に連番を付与する。
コピー後に削除を行う。