処理中ファイル書式 | 状態取得書式 | ユーザーデータ書式 | グローバルデータ書式 | 日付書式 | 文字列書式 | 数学書式 | 制御書式 | ファイルシステム書式 | テキストファイル書式 | データベース書式 | プロセス書式 | Web書式 | DocuWorks書式 | DocuWorks書式 (アノテーション関連) | 画像処理書式 | Excel書式 | その他の書式
テキスト読み込みで読み込んだテキストを1行取得します。処理名に対象となるテキスト読み込みの処理名を指定してください。
{%MSGBOX({%GET_LINE(テキスト読み込み1)})}
テキスト読み込みで読み込んだテキスト、又は、SQL実行のSLELCT文の結果レコードを取得します。処理名に対象となるテキスト読み込み、又は、SQL実行の処理名を指定してください。
列番号は、対象の項目番号を指定します。
{%MSGBOX({%GET_FIELD_VALUE(テキスト読み込み1,2)})}
テキスト読み込みで読み込んだテキストの配列に値をセットします。処理名に対象となるテキスト読み込みを指定してください。
列番号は、対象の項目番号を指定します。
本マクロは、テキスト読み込みで読み込んだデータを部分的に変更したい場合に使用します。
{%SET_FIELD_VALUE(テキスト読み込み1,3,28)}
{%MSGBOX({%GET_FIELD_VALUE(テキスト読み込み1,3)})}
テキスト読み込みで読み込んだテキスト、又は、SQL実行のSLELCT文の結果レコードをCSV(カンマ区切り)で取得します。処理名に対象となるテキスト読み込み、又は、SQL実行の処理名を指定してください。
列番号は、対象の項目番号を指定します。列番号は複数記述することが可能です。例えば1番目と2番目の項目を取得したい場合は、1,2と記述します。2番目~5番目の項目を取得したい場合は、2-5と記述します。1,3-5のようにカンマとハイフンを組み合わせて指定することも可能です。1-や-3のように、開始や終了の列番号を省略することも可能です。
取得されるテキストはCSV形式になります。複数の項目がカンマで区切られ、項目中にカンマがある場合は、項目が”で囲われます。単一の列を取得する場合でも、項目中にカンマがある場合は、項目が”で囲われます。
項目中に"がある場合は、""と2つ続けて記述され、項目が”で囲われます。
{%MSGBOX({%GET_FIELD_VALUES_IN_CSV(テキスト読み込み1,2,4)})}
{%MSGBOX({%GET_FIELD_VALUES_IN_CSV(テキスト読み込み1,1-3)})}
{%MSGBOX({%GET_FIELD_VALUES_IN_CSV(テキスト読み込み1,1,4)})}
{%MSGBOX({%GET_FIELD_VALUES_IN_CSV(テキスト読み込み1,1,4,5)})}
テキスト読み込みで読み込んだテキスト、又は、SQL実行のSLELCT文の結果レコードをTSV(タブ区切り)で取得します。処理名に対象となるテキスト読み込み、又は、SQL実行の処理名を指定してください。
返却文字列がタブ区切りとなる以外は、CSVテキスト取得マクロと同じ仕様となります。
テキスト読み込みで読み込んだテキスト、又は、SQL実行のSLELCT文の結果レコードを引数で指定された区切り文字区切りで取得します。処理名に対象となるテキスト読み込み、又は、SQL実行の処理名を指定してください。
基本的な動作はCSVテキスト取得マクロと同じですが、区切り文字、エスケープ処理の有無、囲い文字、全ての項目に囲い文字を付与するかどうかを指定可能です。
エスケープ処理は、項目中に区切り文字が含まれている場合に、囲い文字で項目を囲います。また、項目中に囲い文字が含まれている場合に囲い文字を2つ続けて記述し、囲い文字で項目を囲います。
例えば1番目のデータが「123」、2番目のデータが「A,BC」の場合、「123,"A,BC"」と取得されます。
1番目のデータが「123」、2番目のデータが「A"BC」の場合、「123,"A""BC"」と取得されます。
全項目囲い文字付与有無に「有」が指定された場合は、全項目が囲い文字で囲われます。エスケープ処理ではないので、同時にエスケープ処理を行いたい場合は、エスケープ有無に「有」を合わせて指定してください。
{%MSGBOX({%GET_FIELD_VALUES_IN_SV(テキスト読み込み1,||,有,",有,1-)})}
{%MSGBOX({%GET_FIELD_VALUES_IN_SV(テキスト読み込み1,|,,無,',無,1-5)})}
{%MSGBOX({%GET_FIELD_VALUES_IN_SV(テキスト読み込み1,|,,有,',無,1-5)})}
GET_FIELD_VALUE と同じですが、項目を列名で指定できます。但し、ヘッダ情報があるテキストを読み込んだ場合のみ使用できます。SQL実行のSELECT文の結果レコードに対しては使用できません。
{%MSGBOX({%GET_FIELD_VALUE(テキスト読み込み1,性別)})}
GET_FIELD_VALUES_IN_CSV と同じですが、項目を列名で指定できます。但し、ヘッダ情報があるテキストを読み込んだ場合のみ使用できます。SQL実行のSELECT文の結果レコードに対しては使用できません。
{%MSGBOX({%GET_FIELD_VALUES_IN_CSV_BY_NAME(テキスト読み込み1,性別,住所)})}
GET_FIELD_VALUES_IN_TSV と同じですが、項目を列名で指定できます。但し、ヘッダ情報があるテキストを読み込んだ場合のみ使用できます。SQL実行のSELECT文の結果レコードに対しては使用できません。
GET_FIELD_VALUES_IN_SV と同じですが、項目を列名で指定できます。但し、ヘッダ情報があるテキストを読み込んだ場合のみ使用できます。SQL実行のSELECT文の結果レコードに対しては使用できません。
テキストファイルからテキストを読み込みます。本マクロはテキスト読み込み処理と関係なく単独で使用できます。文字コードは「SJIS」、「UTF-8」、「UTF-16」、「UTF-16BE」、「EUC」、「JIS」、「自動」の何れかを指定します。
ユーザーデータ名で指定されたユーザーデータを作成して、読み込んだテキストを格納します。行モードが「LINE」の場合、行単位に読み込み行番号をキーとしてユーザーデータに格納します。行モードが「ALL」の場合、全行を読み込み、キー「1」としてユーザーデータに格納します。
行モードが「LINE」の場合、読み込み後のテキストの改行コードはCRLFになります。
行モードが「ALL」の場合、読み込み後のテキストの改行コードはテキストファイルの改行コードと同じになります。
指定されたファイルが見つからない場合は、戻り値にFalseを返します。処理が正常に終了した場合はTrueを返します。
{%READ_FILE(D:\data.txt,text,SJIS,ALL)} {%SET_CLIPBOARD_TEXT({%GET_USER_DATA(text,1)})}
{%READ_FILE(D:\data.txt,text,SJIS,LINE)} {%SET_CLIPBOARD_TEXT({%GET_USER_DATA(text,2)})}
ユーザーデータの1階層目の1要素を1行として、全要素をファイルに書き込みます。
ユーザーデータは1階層のみ対象としています。(2階層以降のデータは無視されます)
エンコーディングの「UTF-8」 は、BOM無しUTF-8を「UTF-8WB」 は、BOM有りUTF-8を表しています。
書き込みモードが「New」の場合は新規でファイルを作成します。同名のファイルがある場合は上書きします。
書き込みモードが「Append」の場合は追加書き込みします。ファイルがない場合は新規作成します。
書き込みモードが省略された場合はNewとなります。
{%ADD_USER_DATA(writeData,WRITE_FILEマクロについて)} {%ADD_USER_DATA(writeData,ユーザーデータの内容をファイルに保存します。)} {%WRITE_FILE(D:\test.txt,writeData,SJIS,New)}
CSVファイルからテキストを読み込みます。本マクロはテキスト読み込み処理と関係なく単独で使用できます。文字コードは「SJIS」、「UTF-8」、「UTF-16」、「UTF-16BE」、「EUC」、「JIS」、「自動」の何れかを指定します。
ユーザーデータ名で指定されたユーザーデータを作成して、読み込んだテキストを格納します。行単位に読み込み、行番号を分類キーで作成し、項目毎にユーザーデータに格納します。
ヘッダ行にはヘッダの行番号を指定します。ヘッダ行がない場合は0を指定します。
データ開始行には、データ行の先頭の行番号を指定します。
行キーには、キーとなる項目番号(1~)を指定します。キーを複数指定する場合は、「1-2」のようにハイフンで区切ります。
行キーに項目番号を指定した場合、指定された項目のデータに重複がある場合、最後に読み込んだデータで上書きされます。また、項目が空文字だった場合は重複しない連番を自動付与したキーが作成されます。
行キーに0を指定すると行のキーは番号(1~)になります。
項目キータイプに項目名を指定した場合は、ヘッダ行に1以上の数字を指定する必要があります。ヘッダ行に指定された行の項目名をキーとして使用します。ヘッダ行が0の場合は項目名は番号となります。
項目キータイプに番号を指定した場合は項目番号がキーとなります。
区切り文字は省略可能です。指定した場合は指定した文字を区切り文字として処理します。タブを指定したい場合は「<Tab>」を指定します。
指定されたファイルが見つからない場合は、戻り値にFalseを返します。処理が正常に終了した場合はTrueを返します。
{%READ_CSV_FILE(D:\data.csv,csv,SJIS,0,1,0,番号)} {%LOOP L1 {%GET_USER_DATA_KEY_COUNT(csv)}( {%LOOP L2 {%GET_USER_DATA_KEY_COUNT(csv,[L_IDX(L1)])}( {%WRITE_LOG({%GET_U(csv,[L_IDX(L1)],[L_IDX(L2)])})} )} )}
{%READ_CSV_FILE(D:\data.csv,csv,SJIS,1,2,0,項目名)} {%LOOP L1 {%GET_USER_DATA_KEY_COUNT(csv)}( {%WRITE_LOG({%GET_U(csv,[L_IDX(L1)],氏名)})} {%WRITE_LOG({%GET_U(csv,[L_IDX(L1)],年齢)})} {%WRITE_LOG({%GET_U(csv,[L_IDX(L1)],電話番号)})} )}
{%READ_CSV_FILE(D:\data.csv,csv,SJIS,1,2,1,項目名)} #学生番号が0003のデータを出力する {%WRITE_LOG({%GET_U(csv,0003,氏名)})} {%WRITE_LOG({%GET_U(csv,0003,年齢)})} {%WRITE_LOG({%GET_U(csv,0003,電話番号)})}
ユーザーデータの1階層目の1要素を1行、2階層目の1要素を項目として、全ての行、全ての項目をファイルに書き込みます。
ユーザーデータのキーは参照しません。キーに何が格納されていても動作に影響はありません。
エンコーディングの「UTF-8」 は、BOM無しUTF-8を「UTF-8WB」 は、BOM有りUTF-8を表しています。
書き込みモードが「New」の場合は新規でファイルを作成します。同名のファイルがある場合は上書きします。
書き込みモードが「Append」の場合は追加書き込みします。ファイルがない場合は新規作成します。
書き込みモードが省略された場合はNewとなります。
{%ADD_USER_DATA(writeData,1,社員番号)} {%ADD_USER_DATA(writeData,1,氏名)} {%ADD_USER_DATA(writeData,2,0001)} {%ADD_USER_DATA(writeData,2,織田信長)} {%ADD_USER_DATA(writeData,3,0002)} {%ADD_USER_DATA(writeData,3,武田信玄)} {%WRITE_CSV_FILE(D:\data.csv,writeData,SJIS)}
結果 社員番号,氏名 0001,織田信長 0002,武田信玄
{%SET_U(writeData,1,1,社員番号)} {%SET_U(writeData,1,2,氏名)} {%WRITE_CSV_FILE(D:\data.csv,writeData,SJIS,New)} {%SET_U(writeData,1,1,0001)} {%SET_U(writeData,1,2,織田信長)} {%WRITE_CSV_FILE(D:\data.csv,writeData,SJIS,Append)} {%SET_U(writeData,1,1,0002)} {%SET_U(writeData,1,2,武田信玄)} {%WRITE_CSV_FILE(D:\data.csv,writeData,SJIS,Append)}
結果 社員番号,氏名 0001,織田信長 0002,武田信玄
SQL実行で結果を返すSQL(SELECT)を実行した結果のレコードは、テキストファイル書式の「GET_FIELD_VALUES_IN_CSV」、「GET_FIELD_VALUES_IN_TSV」、「GET_FIELD_VALUES_IN_SV」マクロを使って取得できます。
SQLを実行して条件にマッチしたレコードをユーザーデータにセットします。検索の結果レコードが複数マッチしても最初の1レコードのみ取得します。 結果は指定したユーザーデータ名に1から始まる番号をキーにして項目値が格納されます。
{%GET_RECORD(DB接続1,RET,select count(id) from id_summary_tbl where id={%GET_FIELD_VALUES_IN_SQL_VALUES(テキスト読み込み1,1)};)}
上記のマクロを実行した結果、「id_summary_tbl」テーブルに該当のidが見つかった場合、1以上の数字がユーザーデータにセットされます。見つからない場合は0がセットされますので、以下の条件式でTrueを返却することができます。
{%IF({%GET_USER_DATA(RET,1)}=0,True,False)}
テキスト読み込みで読み込んだテキスト、又は、SQL実行のSLELCT文の結果レコードをSQL用のカンマ区切りテキストとして取得します。本マクロでは、SQLに必要なエスケープ処理を行います。
INSERT INTO id_summary_tbl (id,id_count) VALUES({%GET_FIELD_VALUES_IN_SQL_VALUES(テキスト読み込み1,1)},1);
GET_FIELD_VALUES_IN_SQL_VALUES と同じですが、項目を列名で指定できます。但し、ヘッダ情報があるテキストを読み込んだ場合のみ使用できます。SQL実行のSELECT文の結果レコードに対しては使用できません。
引数で指定されたユーザーデータの全項目値をSQL用のカンマ区切りテキストとして取得します。本マクロでは、SQLに必要なエスケープ処理を行います。
INSERT INTO id_summary_tbl (id,id_count) VALUES({%GET_USER_DATA_IN_SQL_VALUES(RET)},1);
引数で指定されたDB接続のトランザクションを開始します。
{%BEGIN_TRANSACTION(DB接続1)}
引数で指定されたDB接続のトランザクションをコミットします。
{%COMMIT(DB接続1)}
引数で指定されたDB接続のトランザクションをロールバックします。
{%ROLLBACK(DB接続1)}
引き数で指定した画像ファイルの解像度、縦幅、横幅を取得します。取得できる情報は以下の通りで、結果は結果格納用ユーザーデータに格納されます。
BMP,Tiff,JPEG等の画像ファイルに対応しています。マルチページTiffは1ページ目の画像情報を取得します。
キー | 値 |
---|---|
Width | 画像ファイルの横幅。(単位:mm) |
Height | 画像ファイルの縦幅。(単位:mm) |
VerRes | 画像ファイルの垂直方向の解像度。(単位:dpi) |
HorRes | 画像ファイルの水平方向の解像度。(単位:dpi) |
Resolution | 画像ファイルの垂直方向と水平方向の解像度の高い方。(単位:dpi) |
{%GET_IMAGE_INFORMATION({%GET(FullPathFileName)},ImageInformation)} {%WRITE_LOG(Width:{%GET_U(ImageInformation,Width)})} {%WRITE_LOG(Height:{%GET_U(ImageInformation,Height)})} {%WRITE_LOG(VerRes:{%GET_U(ImageInformation,VerRes)})} {%WRITE_LOG(HorRes:{%GET_U(ImageInformation,HorRes)})} {%WRITE_LOG(Resolution:{%GET_U(ImageInformation,Resolution)})}
引数のメッセージをダイアログに表示します。
{%SET_USER_DATA(Wk,Name,伊藤)}
{%MSGBOX({%GET_USER_DATA(Wk,Name)})}
引数のメッセージを入力ダイアログに表示して、入力値を返却します。
{%SET_USER_DATA(Wk,Name,{%INPUTBOX(氏名を入力してください。)})}
文字列をクリップボードに記憶します。
{%SET_CLIPBOARD_TEXT(ABC)}
クリップボードに記憶された文字列を取得します。
{%GET_CLIPBOARD_TEXT()}
エラーを発生させます。通常のエラーと同様に、処理中の処理を中断します。引数にエラーメッセージを指定することができます。
IFマクロと併用し、条件によりエラーを発生させて使います。
{%IF(({%EXISTS_USER_DATA(商品データ,A001-00123)}=True,,{%RAISE_ERROR(nameが見つかりません)})}
ログ出力マクロ(WRITE_LOG)、及びエラーログ出力マクロ(WRITE_ERROR_LOG)で出力するログのフォーマットを設定します。
引数文字列に{0}を含めてください。ログの出力時にログ出力マクロで指定したメッセージの内容が{0}の位置に出力されます。
引数文字列にマクロを指定した場合は、SET_LOG_FORMATが実行されるときにはマクロの実行は行われません。ログを出力するときに指定したマクロが実行されます。
ログの出力で行われるマクロの実行でエラーが発生した場合は全て無視されます。
このマクロは一度設定するとメモリに保持され、アプリケーションの終了まで有効となります。
このマクロを何度も実行した場合は、呼び出す度に設定値が上書きされます。
スケジューラーの共通設定の監視開始時のマクロに記述するとサービス開始時、スケジューラーの監視開始時に実行され、以後のログ出力マクロすべてに適用されます。
{%SET_LOG_FORMAT(■{%GET(SettingName)} {0})} {%WRITE_LOG(判定:{%GET_U(属性,判定)})} 設定名が「QRコード読み取り」、判定の内容が「True」の場合、以下のように出力されます。 2024/05/01 15:23:29 44 正常 ■QRコード読み取り 判定:True マクロ名[WRITE_LOG] {%WRITE_LOG(処理を実行しました。)}
処理結果にメッセージを出力します。ログ設定が有効になっていれば、通常のログと一緒に出力されます。
{%WRITE_LOG(処理を実行しました。)}
処理結果にエラーメッセージを出力します。ログ設定が有効になっていれば、通常のエラーログと一緒に出力されます。本マクロはエラーログを出力するだけで、エラーは発生しません。エラーを発生させたい場合はRAISE_ERRORマクロを使用してください。
{%WRITE_ERROR_LOG(エラーが発生しました。)}
引数で指定された秒数だけ待機します。引数はミリ秒で指定します。
{%SLEEP(1000)}
SMTPサーバの情報は、メールサーバー設定から右クリックでメールサーバーを追加し、設定を行ってください。 SMTPサーバの設定が行われていない場合はメール送信ができません。メール送信マクロを使用する場合は、必ず設定してください。
引数の説明は以下の通りです。
引数 | 内容 |
---|---|
メールサーバー設定名 | メールサーバー設定のメールサーバー名を指定します。 |
データ名(宛先) | ユーザーデータ名を指定します。事前にユーザーデータに宛先のメールアドレスを値に設定します。キーは何でもOKです。 |
送信元メールアドレス | 送信元メールアドレスを指定します。 |
データ名(CC) | ユーザーデータ名を指定します。事前にユーザーデータにCCの宛先のメールアドレスを値に設定します。キーは何でもOKです。省略可。 |
データ名(BCC) | ユーザーデータ名を指定します。事前にユーザーデータにBCCの宛先のメールアドレスを値に設定します。キーは何でもOKです。省略可。 |
件名 | 件名を指定します。 |
本文 | 本文を指定します。 |
データ名(ファイル) | ユーザーデータ名を指定します。事前にユーザーデータに添付ファイルのフルパスを値に設定します。キーは何でもOKです。省略可。 |
データ名(エラー取得用) |
ユーザーデータ名を指定します。この引数を指定すると、メール送信時にメールサーバーからエラーが返って着た場合にエラーを発生させず、処理を続行します。 省略可。 メールサーバーから返されたエラーメッセージは、指定したユーザーデータのMessageに格納されます。 |
メール送信時に、メールサーバの異常などで送信エラーが発生した場合は、処理がエラーになります。マクロの戻り値は、正常時に「Ture」が返却され、エラー時はマクロ処理が中断され、最後まで処理が行われません。(エラー取得用のユーザーデータを引数に指定した場合は、マクロは中断されず、戻り値に「False」が返却されます。)
{%SET_U(宛先,1,tom@test.com)} {%SET_U(添付ファイル,1,{%GET(FullPathFileName)})} {%SEND_MAIL(メールサーバー1,宛先,jerry@test.com,,,自動送信メール,このメールはeDocArrangementからの自動送信メールです。,添付ファイル)}
{%SET_U(宛先,1,tom@test.com)} {%IF({%SEND_MAIL(メールサーバー1,宛先,jerry@test.com,,,自動送信メール,このメールはeDocArrangementからの自動送信メールです。,,CatchError)}=False, {%WRITE_LOG({%GET_U(CatchError,Message)})} ,)}
入力ファイル名に指定したテキストファイルから、制御コードを除去し、出力ファイル名に指定したファイルに出力します。
処理可能なテキストファイルの文字コードはSJISのみです。除去の対象となる文字コードは16進コードで00~1F,7Fです。但し、改行(0A)、タブ(09)、復帰(0D)は除去しません。
出力ファイルをネットワークフォルダに指定すると、処理速度が遅くなりますので、ローカルフォルダに出力するようにしてください。
{%REMOVE_CONTROL_CHAR(C:\Test\Test.csv,C:\Test\Test_Out.csv)}
コマンドを実行します。戻り値に実行したコマンドのリターンコードが返ります。
Asyncを指定しない場合は、実行したコマンドが終了するまで待機します。コマンドが終了しない場合は永久に待機してしまいますので、そうなった場合はタスクマネージャーでeDocArrangementを強制終了して下さい。
Asyncを指定した場合は、コマンド実行後に直ぐに制御が戻ります。コマンドは非同期で実行されます。
非同期で処理を行う場合は、処理の内容を十分に理解し、同時に処理が行われることで問題が生じないようにする必要があります。トラブルの発生時には非同期処理の問題解決は、より高度なスキルが必要になります。非同期処理の内容理解が十分でない場合は非同期処理を使用しないでください。
{%COMMAND(C:\Home\Demo\System\picturetool.exe,-i C:\Home\Demo\in\in.jpg -o C:\Home\Demo\out\out.png -t 100|,100|,200|,200)}
テキストファイルに記述されたマクロを読み込み、実行します。
エンコードを指定できます。省略するとSJISで読み込みます。
本マクロは入力ファイル等を処理すると、悪意のあるコードを実行することができてしまいます。セキュリティーに十分注意して使用してください。
{%LOAD_MACRO(D:\Home\Macro\macro.txt)}
キー送信を行います。
各キーは、1つまたは複数の文字で表されます。 1つのキーボード文字を指定するには、文字自体を使用します。 たとえば、文字 A を表すには、文字列 "A" をメソッドに渡します。 A、B、および C という文字を表すには、引き数に "ABC" 指定します。
正符号 (+)、キャレット (^)、パーセント記号 (%)、チルダ (~)、およびかっこ () は、特別な意味を持ちます。 これらの文字のいずれかを指定するには、中かっこ{}で囲みます。 たとえば、プラス記号を指定するには、"{+}" を使用します。 中かっこ文字を指定するには、"{{}" および "}" を使用します。 角かっこ[]は特別な意味を持ちません。
キー | コード |
---|---|
BackSpace | {BACKSPACE} または {BS} |
DELETE | {DELETE} または {DEL} |
上方向キー | {UP} |
右方向キー | {RIGHT} |
下方向キー | {DOWN} |
左方向キー | {LEFT} |
ENTER | {ENTER}または~ |
ESC | {ESCAPE} または {ESC} |
Tab | {TAB} |
下方向キー | {DOWN} |
F1 ~ F15 | {F1} から {F15} まで |
Altキー | % |
Ctrlキー | ^ |
Shftキー | +() |
{%SEND_KEYS(test{TAB})}
{%SEND_KEYS(^a)}
{%SEND_KEYS(+(^a))}
引数のタイトルと同じウインドウを探して前面にする。
{%SET_FOREGROUND_WINDOW(無題 - メモ帳)}
プリンターが有効である場合はTrueを返却します。
判定処理としては、プリンターからジョブ数が正常に取得できるかのチェックを行っています。
プリンターが応答不能などの状態になった場合は、プリンターの状態を取得する処理で例外が発生するようになります。
その例外を検知した場合はFalseを返却します。
プリンターが一時停止などのステータス等は調べておりません。プリンターのプロパティが一時停止中や、物理プリンターの状態エラーの場合でも、プリンターが異常状態でなければTrueが返却されます。
「Microsoft Print to PDF」や「DocuWorks PDF」などの仮想プリンターは一時停止中であってもPDF出力は行われるようです。
存在しないプリンター名を指定した場合はエラーが発生します。
このマクロがFalseを返却する場合は、指定したプリンターが使用不可能な状態になっており、PCを再起動するまで復旧しない可能性が高いです。
{%PRINTER_IS_ENABLED(DocuWorks PDF)}