監視フォルダに格納されたXDWl文書を1ページ毎に分割します。
分割したXDW文書のテキストを読み取り、工事名と日付を取得します。
取得した日付でフォルダを作成して、工事名のバインダーを作成して格納します。
C:\Homeの下に、以下のような構成でフォルダを作り、準備します。
フォルダ構成は以下の通りです。
以下のフォルダに解凍すると設定が適用されます。
C:\Users\ユーザー名\AppData\Roaming\TechnoStyle\eDocArrangement2
グローバルデータの内容は以下の通りです。トップフォルダを変更する場合は、以下の定義を変更してください。グローバルデータは、「共通設定」から変更できます。
名前 | 値 |
---|---|
TopFolder | C:\Home\eDocArrangement2\Demo\テキスト読み取りとバインダー束ね |
詳しい設定方法は、 設定例(共通)グローバルデータとログの設定 を参照して下さい。
実行ログファイル名 | {%GET_G(TopFolder)}\90_System\90_Log\Log.txt |
---|---|
エラーログファイル名 | {%GET_G(TopFolder)}\90_System\90_Log\ErrorLog.txt |
文字コード | SJIS |
方式 | 追加書き込み (日単位) |
XDW文書を1ページ毎に分割する。
分割したXDW文書から工事名と日付のテキスト情報を取得する。
取得した日付でフォルダを作成して、工事名のバインダーを作成して束ねる。
共通ログ設定の内容でログを出力する。
メイン画面のファイルリストを対象に繰り返し処理を行う。
ループ毎にユーザーデータをクリアする。
DocuWorksファイルを読み込み専用でオープンする。
バインダーを新規作成する場合は、ページ最大サイズでカラーは青とする。
「XDW文書オープン1」でオープンされた文書のページを先頭から繰り返し処理を行う。
以下のマクロを実行する。
{%SET_SPLIT_DATA({%GET(FullPathFileName)},分割マーク,{%DW_GET(PageLoopCount)},{%DW_GET(PageLoopCount)})}
「XDW文書オープン1」でオープンされた文書をクローズする。クローズ前に文書を保存しない。
バインダー内の文書、オリジナルデータを追加する場合は、末尾に追加する。
文書を以下の通り移動する。
移動元 | {%GET(FullPathFileName)} |
---|---|
移動先 | {%GET_G(TopFolder)}\90_System\10_Temp\10_ページ分割 |
ファイル名を「{%GET(FileNameWithoutExtension)}_{%FORMAT({%GET_SPLIT_DATA({%GET(FullPathFileName)},分割マーク)},0000)}.xdw」に変更する。
移動先に同名の文書がある場合は、ファイル名に連番を付与する。
分割マークのあるページで文書を分割する。
以下の検索を行う。
ファイル検索1を対象に繰り返し処理を行う。
ループ毎にユーザーデータをクリアする。
DocuWorksファイルを読み込み専用でオープンする。
バインダーを新規作成する場合は、ページ最大サイズでカラーは青とする。
以下の内容でOCR読み取りを行う。
「XDW文書オープン2」でオープンされた文書のページ1をOCR読み取りする。
正規表現「工事名(.+?)図面名」で検索を行う。
OCR処理を行わずテキスト抽出のみ行う。
以下の内容でOCR読み取りを行う。
「XDW文書オープン2」でオープンされた文書のページ1をOCR読み取りする。
正規表現「日付(\d{4}/\d{2}/\d{2})」で検索を行う。
OCR処理を行わずテキスト抽出のみ行う。
「XDW文書オープン2」でオープンされた文書をクローズする。クローズ前に文書を保存しない。
バインダー内の文書、オリジナルデータを追加する場合は、末尾に追加する。
以下のマクロを実行する。
{%SET_U(属性,工事名,{%GET_USER_DATA(OCR読み取り1,1)})} {%SET_U(属性,日付,{%GET_USER_DATA(OCR読み取り2,1)})} {%WRITE_LOG(工事名:{%GET_U(属性,工事名)})} {%WRITE_LOG(日付:{%GET_U(属性,日付)})} {%SET_U(wk,判定,False)} #マッチするテキストが全て取得できた場合 {%IF({%GET_U(属性,工事名)}!=, {%IF({%GET_U(属性,日付)}!=, {%SET_U(wk,判定,True)} ,)} ,)} {%WRITE_LOG(判定:{%GET_U(wk,判定)})}
以下の条件を判定して処理を分岐する。
{%GET_U(wk,判定)}
以下のフォルダを作成します。
{%GET_G(TopFolder)}\20_保管\{%FORMAT({%GET_U(属性,日付)},yyyy\\MM\\dd)}
DocuWorksファイルを読み書き可能でオープンする。
文書またはオリジナルデータを展開する。
バインダーを新規作成する場合は、ページ最大サイズでカラーは青とする。
以下のマクロを実行する。
{%WRITE_LOG({%GET(ProcResult,XBD文書オープン1)})} {%WRITE_LOG({%DW_GET_TEMP_FOLDER_FOR_EXTRACTION(XBD文書オープン1)})}
以下の条件を判定して処理を分岐する。
{%GET(ProcResult,XBD文書オープン1)}
文書を以下の通り移動する。
移動元 | {%GET(FullPathFileName)} |
---|---|
移動先 | {%DW_GET_TEMP_FOLDER_FOR_EXTRACTION(XBD文書オープン1)} |
移動先に同名の文書がある場合は、ファイル名に連番を付与する。
「XBD文書オープン1」でオープンされた文書をクローズする。クローズ前に文書を保存する。
バインダー内の文書、オリジナルデータを追加する場合は、末尾に追加する。
文書を以下の通り移動する。
移動元 | {%GET(FullPathFileName)} |
---|---|
移動先 | {%GET_G(TopFolder)}\15_エラー |
ファイル名を「テキスト取得失敗_{%GET(FileName)}」に変更する。
移動先に同名の文書がある場合は、ファイル名に連番を付与する。
以下の動画をご覧ください。