共通マクロ書式

読み取りデータ書式 | シンボル情報取得書式 | 配信先取得書式 | 処理結果取得書式 | ユーザデータ書式 |
グローバルデータ書式 | プラグインデータ書式 | 日付書式 | ファイル名書式 | 文字列書式 |
数学書式
| 制御書式 | 実行書式 | データベース書式 | DocuWorksAPI書式 | ブラウザフォーム書式

DocuWorksAPI書式

NAME 文書属性設定
FORMAT {%DW_SET_USER_ATTRIBUTE(属性名,属性値[,種類])}

処理中のDocuWorks文書に、文書属性を設定します。

属性名は、255文字以内で指定してください。
属性値は、種類により適した文字列を指定します。種類に適合しない文字列を指定した場合は、文字列型として設定します。

種類には、"INTEGER" (数値型), "STRING" (文字列型), "DATE" (日付型), "BOOL" (真偽値型)の何れかが指定できます。
種類が、日付型の場合は、「YYYY/MM/DD」の様に、年/月/日のフォーマットで指定します。
真偽値型では、「TRUE」(有)又は、「FALSE」(無)を指定します。

種類は省略可能です。省略した場合には、文字列型が選択されます。

属性名に以下の名前を指定した場合は、概要タブの各項目を設定できます。

名前 内容
%Title タイトル
%Subject サブタイトル
%Author 作成者
%Keywords キーワード
%Comments コメント

例1
1番目に取得したQRコードの内容を「名前」という属性名で文書属性に設定する。
{%DW_SET_USER_ATTRIBUTE(名前,{%P_DATA(QRコード読み取り1.1)})}
例2
システム日付を「処理日」という属性名で文書属性に設定する。
{%DW_SET_USER_ATTRIBUTE(処理日,{%DATE(yyyy/mm/dd)},DATE)}
例3
取得したQRコードの名前付きデータ「No」の内容を「管理番号」という属性名で文書属性に設定する。
{%DW_SET_USER_ATTRIBUTE(管理番号,{%N_DATA(QRコード読み取り1.No)})}
例4
概要のタイトルに「サンプル」を設定する。
{%DW_SET_USER_ATTRIBUTE(%Title,サンプル)}
NAME 文書属性取得
FORMAT {%DW_GET_USER_ATTRIBUTE(属性名)}

処理中のDocuWorks文書から、文書属性を取得します。

属性名は、255文字以内で指定してください。

属性名に以下の名前を指定した場合は、概要タブの各項目を取得できます。

名前 内容
%Title タイトル
%Subject サブタイトル
%Author 作成者
%Keywords キーワード
%Comments コメント

例1
「名前」という属性名で文書属性から値を取得する。
{%DW_GET_USER_ATTRIBUTE(名前)}
例2
概要のタイトルから値を取得する。
{%DW_GET_USER_ATTRIBUTE(%Title)}
NAME 文書属性削除
FORMAT {%DW_DELETE_USER_ATTRIBUTE(属性名)}

処理中のDocuWorks文書から、指定された文書属性を削除します。

属性名は、255文字以内で指定してください。


例1
「名前」という属性名の文書属性を削除する。
{%DW_DELETE_USER_ATTRIBUTE(名前)}
NAME TIFF画像出力
FORMAT {%DW_OUTPUT_TIFF_IMAGE(出力ファイル名,DPI(解像度),色,開始ページ,終了ページ,圧縮タイプ)}

処理中のDocuWorks文書から、Tiffイメージを出力します。

出力ファイル名は、フルパスで指定してください。
DPI(解像度)は、10〜600の数値を指定してください。

色には、"MONO" (白黒), "COLOR" (カラー),"MONO_HIGHQUALITY"(白黒高画質)の何れかが指定できます。
開始ページは、1以上の値を指定します。終了ページが開始ページより大きい場合で、文書のページが2ページ以上ある場合は、マルチTiff形式で出力されます。
圧縮タイプには、"NOCOMPRESS" , "PACKBITS","JPEG","G4"の何れかが指定できます。

例1
処理中の文書をマルチTiffで全頁出力する。
{%DW_OUTPUT_TIFF_IMAGE(D:\Test\Image01.tif,300,MONO,1,{%TOTAL_PAGE},G4)}
NAME JPEG画像出力
FORMAT {%DW_OUTPUT_JPEG_IMAGE(出力ファイル名,解像度,色,変換ページ,圧縮タイプ)}

処理中のDocuWorks文書から、JPEGイメージを出力します。

出力ファイル名は、フルパスで指定してください。
DPI(解像度)は、10〜600の数値を指定してください。

色には、"MONO" (白黒), "COLOR" (カラー),"MONO_HIGHQUALITY"(白黒高画質)の何れかが指定できます。
変換ページは、1以上の値を指定します。
圧縮タイプには、" NORMAL " , " HIGHQUALITY "," HIGHCOMPRESS "の何れかが指定できます。

例1
処理中の文書の1ページ目をJPEGで出力する。
{%DW_OUTPUT_JPEG_IMAGE(D:\Test\Image01.jpg,300,COLOR,1,NORMAL)}
NAME BMP画像出力
FORMAT {%DW_OUTPUT_BMP_IMAGE(出力ファイル名,解像度,色,変換ページ)}

処理中のDocuWorks文書から、ビットマップイメージを出力します。

出力ファイル名は、フルパスで指定してください。
DPI(解像度)は、10〜600の数値を指定してください。

色には、"MONO" (白黒), "COLOR" (カラー),"MONO_HIGHQUALITY"(白黒高画質)の何れかが指定できます。
変換ページは、1以上の値を指定します。

ビットマップイメージは非圧縮のため、カラーで解像度を高くした場合には、出力されるファイルのサイズが大きくなります。注意してください。

例1
処理中の文書の1ページ目をビットマップイメージで出力する。
{%DW_OUTPUT_BMP_IMAGE(D:\Test\Image01.bmp,300,COLOR,1)}
NAME PDFファイル出力
FORMAT {%DW_OUTPUT_PDF_IMAGE(出力ファイル名,DPI(解像度),色,開始ページ,終了ページ,圧縮タイプ,変換方式)}

処理中のDocuWorks文書から、イメージPDFを出力します。

出力ファイル名は、フルパスで指定してください。
DPI(解像度)は、10〜600の数値を指定してください。

色には、"MONO" (白黒), "COLOR" (カラー),"MONO_HIGHQUALITY"(白黒高画質)の何れかが指定できます。
開始ページは、1以上の値を指定します。
圧縮タイプには以下のの何れかが指定できます。

圧縮タイプ 内容
MRC_NORMAL MRC圧縮 通常
MRC_HIGHQUALITY MRC圧縮 高画質
MRC_HIGHCOMPRESS MRC圧縮 高圧縮
NORMAL JPEG圧縮 通常
HIGHQUALITY JPEG圧縮 高画質
HIGHCOMPRESS JPEG圧縮 高圧縮

圧縮タイプにMRC圧縮を指定した場合、変換方式には、以下の何れかを指定します。

変換方式 内容
MRC_ORIGINAL 独自方式
MRC_OS OSによる方式

例1
処理中の文書をイメージPDF(MRC圧縮 高画質)で全頁出力する。
{%DW_OUTPUT_PDF_IMAGE(D:\Test\Image01.pdf,300,MONO,1,{%TOTAL_PAGE},MRC_HIGHQUALITY,MRC_ORIGINAL)}
例2
処理中の文書をイメージPDF(JPEG圧縮 通常)で全頁出力する。
{%DW_OUTPUT_PDF_IMAGE(D:\Test\Image01.pdf,300,MONO,1,{%TOTAL_PAGE},HIGHQUALITY,)}
NAME 総ページ数取得
FORMAT {%DW_TOTAL_PAGE}

処理中のDocuWorks文書の総ページ数を返却します。

NAME バインダ内文書数取得
FORMAT {%DW_DOCUMENTS_IN_BINDER}

処理中のバインダ内の文書数を返却します。

NAME ページ横幅取得
FORMAT {%DW_PAGE_WIDTH(ページ)}

処理中のDocuWorks文書の引数に指定されたページの横幅(単位は1/100mm)を返却します。

NAME ページ縦幅取得
FORMAT {%DW_PAGE_HEIGHT(ページ)}

処理中のDocuWorks文書の引数に指定されたページの縦幅(単位は1/100mm)を返却します。

NAME ページのノイズ除去
FORMAT {%DW_REDUCE_PAGE_NOISE(ページ,強さ)}

処理中のDocuWorks文書の指定ページをノイズ除去します。 強さにはNORMAL(普通),WEAK(弱),STRONG(強)の何れかが指定可能です。

例1
ページ1をノイズ除去(普通)する。
{%DW_REDUCE_PAGE_NOISE(1,NORMAL)}
NAME ページの回転
FORMAT {%DW_ROTATE_PAGE(ページ,角度)}

処理中のDocuWorks文書の指定ページを指定角度回転させます。(時計回り) 角度には90 , 180 , 270 の何れかが指定可能です。

例1
設定「QRコード読み取り1」で取得した1番目のQRコードの角度から自動正立を行う。
{%DW_ROTATE_PAGE(1,{%SYMBOL_ANGLE(QRコード読み取り1.1)})}
NAME ページの自動正立
FORMAT {%DW_ROTATE_PAGE_AUTO(ページ)}

処理中のDocuWorks文書の指定ページを自動正立します。

例1
すべてのページを自動正立する。(マクロ実行の「マクロをページ単位で処理する」と「最終ページ処理後に文書保存する」の両方をチェックしてください。)
{%DW_ROTATE_PAGE_AUTO({%PAGE_NO})}
NAME ページの削除
FORMAT {%DW_DELETE_PAGE(ページ)}
{%DW_DELETE_PAGE(ユーザーデータ名)}

処理中のDocuWorks文書の指定ページを削除します。引数に数字が指定された場合は指定されたページを削除します。引数にユーザーデータ名が指定された場合は、指定されたユーザーデータに存在するキー(キーにページ番号をセットした状態。値は参照しません。)のページを削除します。

例1
ページ1を削除する。
{%DW_DELETE_PAGE(1)}
例2
ページ1,3を削除する。
{%SET_USER_DATA(DELETE_PAGE,1,)}
{%SET_USER_DATA(DELETE_PAGE,3,)}
{%DW_DELETE_PAGE(DELETE_PAGE)}
NAME ページの挿入
FORMAT {%DW_INSERT_DOCUMENT(ページ,ファイル名)}

処理中のDocuWorks文書の指定ページに、別のDocuWorks文書を挿入します。指定したページ番号の前に文書を挿入します。また、ページの指定に「BOTTOM」を指定すると、最終ページに挿入します。

例1
先頭ページに「D:\Test.xdw」を挿入する。
{%DW_INSERT_DOCUMENT(1,D:\Test.xdw)}
例2
最終ページに「D:\Test.xdw」を挿入する。
{%DW_INSERT_DOCUMENT(BOTTOM,D:\Test.xdw)}
NAME テキストアノテーション貼り付け
FORMAT {%DW_PASTE_TEXT_ANNOTATION(ページ,テキスト,X座標,Y座標,ユーザデータ名[,アノテーション番号])}

処理中のDocuWorks文書の指定ページにテキストアノテーションを貼り付けます。

アノテーションインポート機能を使うと簡単にマクロを作成できます。( マクロ実行設定 参照)

テキストには任意の文字列を指定します。読み取り結果マクロなどを指定することもできます。

座標には、テキストを貼り付ける位置を左上を基準として指定します。(単位は1/100mm)

ユーザデータ名には、フォント情報等がセットされたユーザデータ名を指定します。

ユーザデータで設定可能な項目は以下の通りです。設定を行わない場合は、既定値が設定されます。

キー 既定値
FontName フォント名 MS 明朝
FontSize フォントサイズ 12
ForeColor
茶色

オリーブ


青緑
灰色


黄緑


赤紫
水色
BackColor
茶色

オリーブ


青緑
灰色


黄緑


赤紫
水色

背景色なし
WordWrap 折り返す
折り返さない
折り返さない
Height 500〜240000 指定なし
Width 500〜240000 指定なし
TextAutoResizeHeight 高さ自動調整。
する
しない
WordWrapが「折り返す」の場合に有効。
しない
TextDirection 横書き
縦書き
横書き
TextOrientation 文字列の回転角度。時計回りに0〜359度。 0
LineSpace 文字列の行間。1〜10行 (1/100行単位)。 100
TextSpacing テキストの文字間隔。ポイント単位。 0
TextTopMargin テキストの上のマージン。0〜20000(1/100mm 単位)。 170
TextLeftMargin テキストの左のマージン。0〜20000(1/100mm 単位)。 170
TextBottomMargin テキストの下のマージン。0〜20000(1/100mm 単位)。 170
TextRightMargin テキストの右のマージン。0〜20000(1/100mm 単位)。 170

付箋上に貼り付ける場合は、付箋貼り付けマクロで返却されるアノテーション番号を指定します。


例1
処理中の文書の1ページ目の左から1cm、上から1cmの場所に、システム日付を貼り付ける。
{%DW_PASTE_TEXT_ANNOTATION(1,{%DATE(yyyy/mm/dd)},1000,1000,)}
例2
処理中の文書の全ページの左から1cm、上から2cmの場所に「テキスト」を貼り付ける。(「マクロをページ単位で処理する」及び、「最終ページ処理後に文書保存する」にチェックを入れる。)
{%SET_USER_DATA(FontSet1,FontSize,12)}
{%SET_USER_DATA(FontSet1,ForeColor,黒)}
{%SET_USER_DATA(FontSet1,BackColor,なし)}
{%SET_USER_DATA(FontSet1,FontName,MS 明朝)}
{%DW_PASTE_TEXT_ANNOTATION({%PAGE_NO},テキスト,1000,2000,FontSet1)}
例3
検出されたすべてのQRコードの内容を、それぞれのQRコードの上にテキストとして貼り付ける。(複数ページ対応) マクロ処理の前に、「QRコード読み取り1」という処理名でQRコード読み取りの設定を行うこと。
{%SET_USER_DATA(FontSet,FontSize,10)}
{%SET_USER_DATA(FontSet,ForeColor,赤)}
{%SET_USER_DATA(FontSet,BackColor,背景色なし)}
{%SET_USER_DATA(FontSet,FontName,MS ゴシック)}
{%LOOP L1 {%SYMBOL_COUNT(QRコード読み取り1)}(
{%DW_PASTE_TEXT_ANNOTATION({%SYMBOL_PAGE(QRコード読み取り1.[L_IDX(L1)])},{%P_DATA(QRコード読み取り1.[L_IDX(L1)])},{%SYMBOL_POSITION(QRコード読み取り1.[L_IDX(L1)],左上,X)},{%SYMBOL_POSITION(QRコード読み取り1.[L_IDX(L1)],左上,Y)},FontSet)}
)}
NAME ビットマップアノテーション貼り付け
FORMAT {%DW_PASTE_BITMAP_ANNOTATION(ページ,ビットマップファイル名,X座標,Y座標[,アノテーション番号])}

処理中のDocuWorks文書の指定ページにビットマップ画像を貼り付けます。

アノテーションインポート機能を使うと簡単にマクロを作成できます。( マクロ実行設定 参照)

ビットマップファイル名にはフルパスでファイルを指定します。

座標には、ビットマップ画像を貼り付ける位置を左上を基準として指定します。(単位は1/100mm)

付箋上に貼り付ける場合は、付箋貼り付けマクロで返却されるアノテーション番号を指定します。

例1
処理中の文書の1ページ目の左から1cm、上から1cmの場所に、ビットマップ画像を貼り付ける。
{%DW_PASTE_BITMAP_ANNOTATION(1,D:\Temp\Image.bmp,1000,1000)}
NAME 矩形アノテーション貼り付け
FORMAT {%DW_PASTE_RECT_ANNOTATION(ページ,X座標,Y座標,幅,高さ,ユーザデータ名[,アノテーション番号])}

処理中のDocuWorks文書の指定ページに矩形アノテーションを貼り付けます。

アノテーションインポート機能を使うと簡単にマクロを作成できます。( マクロ実行設定 参照)

座標には、矩形を貼り付ける位置を左上を基準として指定します。(単位は1/100mm)

ユーザデータ名には、矩形情報がセットされたユーザデータ名を指定します。

ユーザデータで矩形情報として設定可能な項目は以下の通りです。設定を行わない場合は、既定値が設定されます。

内容 キー 既定値
枠線 BorderStyle あり,なし あり
枠線の幅 BorderWidth 線幅 1
枠線の色 BorderColor
茶色

オリーブ


青緑
灰色


黄緑


赤紫
水色
塗り潰し色 FillColor
茶色

オリーブ


青緑
灰色


黄緑


赤紫
水色
塗り潰し色の透過 FillTransparent する,しない しない
塗り潰し FillStyle する,しない する

付箋上に貼り付ける場合は、付箋貼り付けマクロで返却されるアノテーション番号を指定します。


例1
処理中の文書の1ページ目に、矩形を貼り付ける。
{%SET_USER_DATA(RectSet,BorderStyle,あり)}
{%SET_USER_DATA(RectSet,BorderWidth,3)}
{%SET_USER_DATA(RectSet,BorderColor,水色)}
{%SET_USER_DATA(RectSet,FillColor,黄緑)}
{%SET_USER_DATA(RectSet,FillTransparent,しない)}
{%SET_USER_DATA(RectSet,FillStyle,する)}
{%DW_PASTE_RECT_ANNOTATION(1,2101,2449,4945,2416,RectSet)}
NAME 直線アノテーション貼り付け
FORMAT {%DW_PASTE_LINE_ANNOTATION(ページ,X座標,Y座標,水平移動量,垂直移動量,ユーザデータ名[,アノテーション番号])}

処理中のDocuWorks文書の指定ページに直線アノテーションを貼り付けます。

アノテーションインポート機能を使うと簡単にマクロを作成できます。( マクロ実行設定 参照)

座標には、直線を貼り付ける位置を左上を基準として指定します。(単位は1/100mm)

ユーザデータ名には、直線情報がセットされたユーザデータ名を指定します。

ユーザデータで直線情報として設定可能な項目は以下の通りです。設定を行わない場合は、既定値が設定されます。

矢印をなしに指定した場合は、矢印の形状を指定することができます。

インポート機能で読み込みを行った場合、斜め線や矢印線で正確な位置が読み取れない場合があります。仕様上の制限となりますのでご了承ください。

内容 キー 既定値
線の幅 BorderWidth 線幅 1
線の色 BorderColor
茶色

オリーブ


青緑
灰色


黄緑


赤紫
水色
線色の透過 FillTransparent する,しない しない
矢印 ArrowheadType なし
始点のみ
終点のみ
両方
なし
矢印の形状 ArrowheadStyle 広いかさ
かさ
塗りつぶし
広いかさ

付箋上に貼り付ける場合は、付箋貼り付けマクロで返却されるアノテーション番号を指定します。


例1
処理中の文書の1ページ目に、直線を貼り付ける。
{%SET_USER_DATA(LineSet,BorderWidth,3)}
{%SET_USER_DATA(LineSet,BorderColor,赤)}
{%DW_PASTE_LINE_ANNOTATION({%PAGE_NO},1033,1423,3402,0,LineSet)}
NAME 日付印アノテーション貼り付け
FORMAT {%DW_PASTE_DATESTAMP_ANNOTATION(ページ,上部テキスト,下部テキスト,X座標,Y座標,ユーザデータ名[,幅][,アノテーション番号])}

処理中のDocuWorks文書の指定ページに日付印アノテーションを貼り付けます。

アノテーションインポート機能を使うと簡単にマクロを作成できます。( マクロ実行設定 参照)

上部テキスト、及び下部テキストには任意の文字列を指定します。

座標には、日付印を貼り付ける位置を左上を基準として指定します。(単位は1/100mm)

ユーザデータ名には、日付印の属性情報がセットされたユーザデータ名を指定します。

幅には日付印の幅を指定します。省略可。(単位は1/100mm) (DocuWorks6.2以上)

ユーザデータで 日付印の属性 情報として設定可能な項目は以下の通りです。設定を行わない場合は、既定値が設定されます。

キー 既定値
BorderColor
茶色

オリーブ


青緑
灰色


黄緑


赤紫
水色
BasisYear 日付の年の部分に和暦を使用したい場合に、設定します。
値は、 和暦の基準年を指定します。例えば、平成の場合は、1989を指定します。
なし。設定を行わない場合は、西暦の下2桁が年になります。
YearField 日付を指定する場合に、年を指定します。 なし。設定を行わない場合は、システム日付になります。
MonthField 日付を指定する場合に、月を指定します。 なし。設定を行わない場合は、システム日付になります。
DayField 日付を指定する場合に、日を指定します。 なし。設定を行わない場合は、システム日付になります。

付箋上に貼り付ける場合は、付箋貼り付けマクロで返却されるアノテーション番号を指定します。


例1
全てのページに日付印を貼り付ける。
「マクロをページ単位で処理する」、「最終ページ処理後に文書保存する」にチェックをいれてください。
{%SET_USER_DATA(Stamp,部署,総務課)}
{%SET_USER_DATA(Stamp,氏名,山田)}
{%SET_USER_DATA(StampSet,BorderColor,赤)}
{%DW_PASTE_DATESTAMP_ANNOTATION({%PAGE_NO},{%GET_USER_DATA(Stamp,部署)},{%GET_USER_DATA(Stamp,氏名)},1000,1000,StampSet)}
例2
全てのページに日付印を貼り付ける。(日付の年を和暦にする。)
「マクロをページ単位で処理する」、「最終ページ処理後に文書保存する」にチェックをいれてください。
{%SET_USER_DATA(Stamp,部署,総務課)}
{%SET_USER_DATA(Stamp,氏名,山田)}
{%SET_USER_DATA(StampSet,BorderColor,赤)}
{%SET_USER_DATA(StampSet,BasisYear,1989)}
{%DW_PASTE_DATESTAMP_ANNOTATION({%PAGE_NO},{%GET_USER_DATA(Stamp,部署)},{%GET_USER_DATA(Stamp,氏名)},1000,1000,StampSet)}
例3
全てのページに日付印を貼り付ける。(日付を'06.02.01にする。)
「マクロをページ単位で処理する」、「最終ページ処理後に文書保存する」にチェックをいれてください。
{%SET_USER_DATA(Stamp,部署,総務課)}
{%SET_USER_DATA(Stamp,氏名,山田)}
{%SET_USER_DATA(StampSet,BorderColor,赤)}
{%SET_USER_DATA(StampSet,YearField,06)}
{%SET_USER_DATA(StampSet,MonthField,02)}
{%SET_USER_DATA(StampSet,DayField,01)}
{%DW_PASTE_DATESTAMP_ANNOTATION({%PAGE_NO},{%GET_USER_DATA(Stamp,部署)},{%GET_USER_DATA(Stamp,氏名)},1000,1000,StampSet)}
NAME 付箋アノテーション貼り付け
FORMAT {%DW_PASTE_FUSEN_ANNOTATION(ページ,X座標,Y座標,幅,高さ,ユーザデータ名)}

処理中のDocuWorks文書の指定ページに付箋アノテーションを貼り付けます。

座標には、付箋を貼り付ける位置を左上を基準として指定します。(単位は1/100mm)

ユーザデータ名には、属性情報がセットされたユーザデータ名を指定します。

ユーザデータで属性情報として設定可能な項目は以下の通りです。設定を行わない場合は、既定値が設定されます。

内容 キー 既定値
付箋内のテキストに付箋の大きさを合わせる。 AutoResize する,しない しない
塗り潰し色 FillColor
茶色

オリーブ


青緑
灰色


黄緑


赤紫
水色

付箋赤
付箋青
付箋黄
付箋緑
付箋青

塗り潰し色にはカラーコードを指定することも可能です。

マクロの戻り値はアノテーション番号となっています。戻り値をユーザーデータにセットして、テキストアノテーションの貼り付けマクロに、アノテーション番号を指定すると、付箋上に貼り付けることができます。

例1
処理中の文書の1ページ目に、付箋を貼り付け、付箋上にテキストを貼り付ける。
{%SET_USER_DATA(FusenSet,FillColor,付箋青)}
{%SET_USER_DATA(FusenSet,AutoResize,しない)}
{%SET_USER_DATA(wk,アノテーション番号,{%DW_PASTE_FUSEN_ANNOTATION(1,2101,2449,4945,2416,FusenSet)})}

{%SET_USER_DATA(FontSet1,FontSize,12)}
{%SET_USER_DATA(FontSet1,ForeColor,黒)}
{%SET_USER_DATA(FontSet1,BackColor,なし)}
{%SET_USER_DATA(FontSet1,FontName,MS 明朝)}
{%DW_PASTE_TEXT_ANNOTATION(1,テキスト,100,100,FontSet1,{%GET_USER_DATA(wk,アノテーション番号)})}
NAME アノテーションツールファイルの貼り付け
FORMAT {%DW_PASTE_ANNOTATION_TOOL_FILE(ページ,X座標,Y座標,アノテーションツールファイル名,番号[,親アノテーション番号])}

処理中のDocuWorks文書の指定ページに、アノテーションツールファイルの指定番号のアノテーションを貼り付けます。

本マクロはDocuWorks8.0以降で使用できます。

座標には、アノテーションを貼り付ける位置を左上を基準として指定します。(単位は1/100mm)

アノテーションツールファイル名には、アノテーションツールファイル(.ann)のフルパスファイル名を指定します。アノテーションツールファイルは、事前にDocuWorks Viewerで作成しておく必要があります。

アノテーションツールファイルは通常「C:\Users\dev\Documents\Fuji Xerox\DocuWorks\DWFolders\Annotations」に格納されています。このフォルダから拡張子「.ann」のファイルを別フォルダにコピーして参照するようにしてください。

番号には、貼り付けを行うアノテーションツールファイルのアノテーションの番号を指定します。指定した番号が存在しない場合は、「AddAnnotationFile : その他のエラーです。」とエラーになります。

付箋上に貼り付ける場合は、付箋貼り付けマクロで返却されるアノテーション番号を親アノテーション番号に指定します。座標は付箋上の左上(0,0)からの位置となります。

マクロの戻り値はアノテーション番号となっています。貼り付けたアノテーションが、付箋などの貼り付け可能なアノテーションの場合、戻り値をユーザーデータにセットして、テキストアノテーションの貼り付けマクロにアノテーション番号を指定すると、アノテーション上に貼り付けることができます。貼り付けが出来ないアノテーションの場合はエラーとなります。

例1
処理中の文書の1ページ目に、アノテーションツールファイルの1番目のアノテーションを貼り付ける。
{%DW_PASTE_ANNOTATION_TOOL_FILE(1,1000,1000,C:\Home\Annotation\カスタム.ann,1)}
NAME アノテーション削除(タイプ別)
FORMAT {%DW_DEL_ANNO_TYPE(ページ,タイプが定義されたユーザデータ名,[座標範囲が定義されたユーザデータ名])}

処理中のDocuWorks文書の指定ページのアノテーションを削除します。アノテーションのタイプと座標範囲を指定できます。座標範囲は省略可能です。

タイプを指定するユーザデータで設定可能な項目は以下の通りです。ユーザーデータにはキーのみを指定して、値は空文字をセットします。データは複数指定することが可能です。(例3参照)

アノテーションのタイプ 指定するキー
すべてのタイプ ALL
付箋 FUSEN
テキスト TEXT
日付印 STAMP
直線 STRAIGHTLINE
矩形 RECTANGLE
楕円 ARC
フリーハンド/マーカー MARKER
リンク LINK
見出し/ページ番号 PAGEFORM
OLE OLE
ビットマップ(画像) BITMAP
多角形 POLYGON
タイトル TITLE
カスタム CUSTOM
グループ GROUP

座標範囲を指定するユーザデータで設定可能な項目は以下の通りです。ユーザーデータのキーには、以下の項目をセットして、値には座標を1/100mm単位で指定します。(例4,例5参照)

キー
StartX X座標の開始位置
StartY Y座標の開始位置
EndX X座標の終了位置
EndY Y座標の終了位置

例1
ページ1の全てのアノテーションを削除
{%SET_USER_DATA(Type,ALL,)}
{%DW_DEL_ANNO_TYPE(1,Type)}
例2
全てのページの全てのアノテーションを削除
「マクロをページ単位で処理する」、「最終ページ処理後に文書保存する」にチェックをいれてください。
{%SET_USER_DATA(Type,ALL,)}
{%DW_DEL_ANNO_TYPE({%PAGE_NO},Type)}
例3
全てのページのテキストとビットマップアノテーションを削除
「マクロをページ単位で処理する」、「最終ページ処理後に文書保存する」にチェックをいれてください。
{%SET_USER_DATA(Type,TEXT,)}
{%SET_USER_DATA(Type,BITMAP,)}
{%DW_DEL_ANNO_TYPE({%PAGE_NO},Type)}
例4
全てのページのテキストアノテーションの削除(座標指定)
「マクロをページ単位で処理する」、「最終ページ処理後に文書保存する」にチェックをいれてください。
{%SET_USER_DATA(Type,TEXT,)}
{%SET_USER_DATA(Location,StartX,1341)}
{%SET_USER_DATA(Location,StartY,1383)}
{%SET_USER_DATA(Location,EndX,1341)}
{%SET_USER_DATA(Location,EndY,1383)}
{%DW_DEL_ANNO_TYPE({%PAGE_NO},Type,Location)}
例5
全てのページの左上10cm四方のアノテーションを削除
「マクロをページ単位で処理する」、「最終ページ処理後に文書保存する」にチェックをいれてください。
{%SET_USER_DATA(Type,ALL,)}
{%SET_USER_DATA(Location,StartX,0)}
{%SET_USER_DATA(Location,StartY,0)}
{%SET_USER_DATA(Location,EndX,10000)}
{%SET_USER_DATA(Location,EndY,10000)}
{%DW_DEL_ANNO_TYPE({%PAGE_NO},Type,Location)}
NAME アノテーション削除(テキスト)
FORMAT {%DW_DEL_ANNO_TEXT(ページ,正規表現,[座標範囲が定義されたユーザデータ名])}

処理中のDocuWorks文書の指定ページの検索文字に合致するテキストアノテーションを削除します。検索用の正規表現と座標範囲を指定できます。座標範囲は省略可能です。

正規表現には、検索する文字を正規表現で記述します。正規表現は//で囲い最後に以下のオプションが指定出来ます。例えば「番号」が含まれるテキストアノテーションを対象にする場合には、「/番号/」と指定します。

iオプションは大文字小文字を区別しないので、NoやNOどちらも対象にしたい場合には、「/NO/i」と指定します。

オプション 内容
i 大文字、小文字を区別しない。
m 文字列を複数行として扱う。

座標範囲を指定するユーザデータで設定可能な項目は以下の通りです。ユーザーデータのキーには、以下の項目をセットして、値には座標を1/100mm単位で指定します。(アノテーション削除(タイプ別)の例4,例5参照)

キー
StartX X座標の開始位置
StartY Y座標の開始位置
EndX X座標の終了位置
EndY Y座標の終了位置

例1
先頭が「管理番号」で始まるテキストアノテーションを削除
{%DW_DEL_ANNO_TEXT({%PAGE_NO},/^管理番号/)}
例2
「管理番号」が含まれているテキストアノテーションを削除
{%DW_DEL_ANNO_TEXT({%PAGE_NO},/管理番号/)}
例3
「No.」(大文字小文字を区別しない)が含まれるテキストアノテーションを削除
この例の場合「NO.123」や「no.123」も削除される。
{%DW_DEL_ANNO_TEXT({%PAGE_NO},/NO\\./i)}

例3では、「No.」に「.」が含まれています。「.」は正規表現での意味のある文字になりますので、直前に「\」をつけて、「\.」と指定しますが、eDocArrangementのマクロでも「\」はエスケープ文字になりますので、「\\.」と表記します。

NAME アノテーション削除(日付印)
FORMAT {%DW_DEL_ANNO_STAMP(ページ,正規表現,[座標範囲が定義されたユーザデータ名])}

処理中のDocuWorks文書の指定ページの検索文字に合致する日付印アノテーションを削除します。検索用の正規表現と座標範囲を指定できます。座標範囲は省略可能です。

正規表現には、検索する文字を正規表現で記述します。正規表現は//で囲い最後に以下のオプションが指定出来ます。

オプション 内容
i 大文字、小文字を区別しない。
m 文字列を複数行として扱う。

日付印から取得される文字は、以下のようにタグで囲まれた文字となって取得されます。本マクロの正規表現は、以下のタグ付き文字列に対して検索を行うためのものです。

対象 タグ
上部テキスト <Top></Top>
下部テキスト <Bottom></Bottom>
日付 <Date></Date>

検索対象の日付印の例

<Top>管理課</Top><Bottom>山田</Bottom><Date>'07.08.07</Date>

上段が管理課の日付印を削除したい場合は正規表現に「 /<Top>管理課<\/Top>/ 」を指定します。

座標範囲を指定するユーザデータで設定可能な項目は以下の通りです。ユーザーデータのキーには、以下の項目をセットして、値には座標を1/100mm単位で指定します。(アノテーション削除(タイプ別)の例4,例5参照)

キー
StartX X座標の開始位置
StartY Y座標の開始位置
EndX X座標の終了位置
EndY Y座標の終了位置

例1
上段が「総務課」の日付アノテーションを削除
{%DW_DEL_ANNO_STAMP({%PAGE_NO},/<Top>総務課<\/Top>/)}
例2
下段が「伊藤(改行)博文」の日付アノテーションを削除
{%DW_DEL_ANNO_STAMP({%PAGE_NO},/<Bottom>伊藤\r\n博文<\/Bottom>/)}
NAME ページ情報取得
FORMAT {%DW_GET_PAGE_INFORMATION(ページ)}

処理中のDocuWorks文書の指定ページの情報を取得します。

取得できる情報は以下の通りで、結果は「PageInformation」という名前のユーザデータに格納されます。

インストールされているDocuWorksのバージョンによって取得できる情報が変わります。

キー DocuWorksのバージョン
PageWidth ページの幅。
単位 : 1/100mm
Ver4以降
PageHeight ページの高さ。
単位 : 1/100mm
Ver4以降
PagePageType ページのタイプ。
FROMIMAGE : イメージ
FROMAPPL : アプリケーション
NULL : DocuWorks新規作成
Ver4以降
PageHorRes ページの垂直解像度。
単位 : dpi
Ver4以降
PageVerRes ページの水平解像度。
単位 : dpi
Ver4以降
PageCompressType 圧縮タイプ。
NOCOMPRESS : 無圧縮 劣化無
LOSSLESS : 無圧縮 劣化有
HIGHQUALITY : JPEG高画質 劣化有
NORMAL : JPEG標準 劣化有
HIGHCOMPRESS : JPEG高圧縮 劣化有
JPEG : 外部JPEG
MRC_NORMAL : MRC標準 劣化有
MRC_HIGHQUALITY : MRC高画質 劣化有
MRC_HIGHCOMPRESS : MRC高圧縮 劣化有
MRC : 外部MRC
Ver4以降
MRCは5以降
PageAnnotations ページ内のアノテーションの数。 Ver4以降
PageDegree ページの回転角度。
0,90,180,270の4種類
Ver5以降
PageOrgWidth 元データの横幅。
単位 : 1/100mm
Ver5以降
PageOrgHeight 元データの高さ。
単位 : 1/100mm
Ver5以降
PageOrgHorRes 元データの水平解像度。
単位 : dpi
Ver5以降
PageOrgVerRes 元データの垂直解像度。
単位 : dpi
Ver5以降
PageImageWidth 元データの水平ピクセル数。
単位 : ピクセル
Ver5以降
PageImageHeight 元データの垂直ピクセル数。
単位 : ピクセル
Ver5以降

例1
ページ1のページ情報を表示する。
{%DW_GET_PAGE_INFORMATION(1)}
{%MSGBOX(PageWidth = {%GET_USER_DATA(PageInformation,PageWidth)}
PageHeight = {%GET_USER_DATA(PageInformation,PageHeight)}
PagePageType = {%GET_USER_DATA(PageInformation,PagePageType)}
PageHorRes = {%GET_USER_DATA(PageInformation,PageHorRes)}
PageVerRes = {%GET_USER_DATA(PageInformation,PageVerRes)}
PageCompressType = {%GET_USER_DATA(PageInformation,PageCompressType)}
PageAnnotations = {%GET_USER_DATA(PageInformation,PageAnnotations)}
PageDegree = {%GET_USER_DATA(PageInformation,PageDegree)}
PageOrgWidth = {%GET_USER_DATA(PageInformation,PageOrgWidth)}
PageOrgHeight = {%GET_USER_DATA(PageInformation,PageOrgHeight)}
PageOrgHorRes = {%GET_USER_DATA(PageInformation,PageOrgHorRes)}
PageOrgVerRes = {%GET_USER_DATA(PageInformation,PageOrgVerRes)}
PageImageWidth = {%GET_USER_DATA(PageInformation,PageImageWidth)}
PageImageHeight = {%GET_USER_DATA(PageInformation,PageImageHeight)}
)}
NAME ページカラー情報取得
FORMAT {%DW_GET_PAGE_COLOR_INFORMATION(ページ)}

処理中のDocuWorks文書の指定ページのカラー情報を取得します。取得できる情報は以下の通りで、結果は「PageInformation」という名前のユーザデータに格納されます。

インストールされているDocuWorksのバージョンによって取得できる情報が変わります。

キー
PageColor カラーの場合1、白黒又はグレースケールの場合0
PageImageDepth 1ピクセルのビット数。イメージページでない場合は0。

例1
ページ1のページカラー情報を表示する。
{%DW_GET_PAGE_COLOR_INFORMATION(1)}
{%MSGBOX(PageColor = {%GET_USER_DATA(PageInformation,PageColor)}
PageImgaeDepth = {%GET_USER_DATA(PageInformation,PageImageDepth)}
)}
NAME 文書属性のコピー
FORMAT {%DW_COPY_ATTRIBUTE(XDW文書ファイル名,SUMMARY|USER)}

処理中のXDW文書に引数で指定したXDW文書から文書属性をコピーします。

2番目の引き数にSUMMARYを指定すると文書属性の概要がコピーされます。USERを指定するとユーザー定義属性がコピーされます。SUMMARY|USERを指定すると両方がコピーされます。

例1
処理中のXDW文書に「D:\Home\temp\moto.xdw」の文書から文書属性の概要とユーザー定義属性をコピーする。
{%DW_COPY_ATTRIBUTE(D:\Home\temp\moto.xdw,SUMMARY|USER)}
NAME アノテーションのコピー
FORMAT {%DW_COPY_ANNOTATION(XDW文書ファイル名)}

処理中のXDW文書に引数で指定したXDW文書からアノテーションをコピーします。

コピー元とコピー先のXDW文書はページ数、用紙サイズを一致させるようにしてください。コピー元のページ数が多い場合は、コピー先にないページ番号以降の全てのアノテーションが、コピー先の最終ページに貼り付きます。また、ページサイズが違う場合はコピー先のページサイズに収まるように位置が調整されます。

カスタムアノテーション以外のアノテーションが対象となります。カスタムアノテーションを含む場合はエラーとなります。エラーとなった場合に出力されるメッセージは、「関数の引数に仕様外の値を渡しました。」となり、エラーの詳細はわかりません。コピー元となるXDW文書は新規で作成して、必要なアノテーションのみを追加したファイルを対象としてください。コピー元となるXDW文書のアノテーションの内容が不定の場合、本マクロを使用するのは推奨できません。このマクロはDocuWorksAPIのXDW_SucceedAttributeを使用していますので、仕様はXDW_SucceedAttributeと同じとなります。

例1
処理中のXDW文書に「D:\Home\temp\moto.xdw」の文書からアノテーションをコピーする。
{%DW_COPY_ANNOTATION(D:\Home\temp\moto.xdw)}
NAME アノテーションの表示/非表示の切り替え
FORMAT {%DW_SHOW_AND_HIDE_ANNOTATION(SHOW|HIDE)}

XDW文書のアノテーションの表示/非表示を切り替えます。引数にSHOWを指定すると表示状態となります。HIDEを指定すると非表示状態となります。文書が複数ページの場合はすべてのページが対象となります。

例1
アノテーションを非表示にする。
{%DW_SHOW_AND_HIDE_ANNOTATION(HIDE)}
NAME 検索文字の座標取得
FORMAT {%DW_GET_TEXT_POSITION(ページ,検索文字列,結果返却用ユーザーデータ,大文字小文字同一視(0|1),全角半角同一視(0|1),ひらがなカタカナ同一視(0|1),パディング値)}

検索文字列で指定された文字を、指定ページから検索し、見つかった文字の位置と高さと幅を結果返却用ユーザーデータにセットします。検索文字はスペース区切りで複数の文字を指定できます。

""で囲うとスペースを含めたそのままの文字で検索できます。""で囲わない場合に、スペースを検索対象としたい場合は、スペースの直前に\を付けます。\を検索する場合は、\\と記述します。"も特別な意味を持つことになるので、"を検索するときは\"と記述します。

検索対象はアプリケーション文書のテキスト情報、または、イメージ文書をOCR処理した結果のテキスト情報のいずれかとなります。イメージ文書は事前にOCR処理を行う必要があります。 (DocuWorks9以降はイメージ文書をOCR処理した場合は、取得不可となりました。)

大文字小文字同一視、全角半角同一視、ひらがなカタカナ同一視は、0又は1を指定します。1が指定されると、検索時に大文字小文字(全角半角、ひらがなカタカナ)を同一視して検索を行います。

パディング値(1/100mm)を指定すると、見つかった矩形にパディングを付けた状態で座標とサイズをセットする。

結果は複数になる場合があるため、「結果返却用ユーザーデータ名 + "_" + 番号(1〜)」の名前でユーザーデータが作成されます。結果の数は、「{%GET_USER_DATA(結果返却用ユーザーデータ名,Count)}」で取得できます。

1つの見つかった文字が、複数の矩形で構成される場合があります。文字が折り返している場合などは1行目と2行目が別の矩形となり、2つの矩形情報が取得されます。そのため、矩形の個数とインデックスを取得できるようにしてあります。

また、複数の矩形を一つにまとめた矩形の情報も取得できます。(RectIndexとRectCountが等しい場合に「MergeRectX, MergeRectY, MergeRectWidth, MergeRectHeight」にセットされます。矩形が1つだった場合は、これらの値は矩形の情報と同じになります。)

格納されるユーザーデータの内容は以下の通りです。

キー
X 見つかった文字のX座標(1/100mm)。
Y 見つかった文字のY座標(1/100mm)。
Width 見つかった文字の幅(1/100mm)。
Height 見つかった文字の高さ(1/100mm)。
Status 0の場合は文字の座標とサイズ。1の場合はページ全体の座標とサイズ。(矩形情報が取得できなかった場合は1となる。OCRのモジュールによって取得できない場合があるようです。)
WordIndex 検索結果のインデックス。
WordCount 検索結果の数。
RectIndex 矩形のインデックス。
RectCount 矩形の個数。
MergeRectX 矩形が複数で構成される場合に、一つにまとめた矩形のX座標(1/100mm)。この情報はRectIndexとRectCountが等しい場合にのみセットされます。
MergeRectY 矩形が複数で構成される場合に、一つにまとめた矩形のY座標(1/100mm)。この情報はRectIndexとRectCountが等しい場合にのみセットされます。
MergeRectWidth 矩形が複数で構成される場合に、一つにまとめた矩形の幅(1/100mm)。この情報はRectIndexとRectCountが等しい場合にのみセットされます。
MergeRectHeight 矩形が複数で構成される場合に、一つにまとめた矩形の高さ(1/100mm)。この情報はRectIndexとRectCountが等しい場合にのみセットされます。

例1
P001500を検索して、見つかった文字の位置に矩形アノテーションは貼り付ける。
「マクロをページ単位で処理する」、「最終ページ処理後に文書保存する」にチェックをいれてください。
{%DW_GET_TEXT_POSITION({%PAGE_NO},P001500,文字位置,0,0,0,50)}

{%LOG_OUT(結果:{%GET_USER_DATA(文字位置,Count)})}

{%SET_USER_DATA(RectSet,BorderStyle,なし)} 
{%SET_USER_DATA(RectSet,FillColor,黄)} 
{%SET_USER_DATA(RectSet,FillTransparent,する)} 
{%SET_USER_DATA(RectSet,FillStyle,する)} 

#--

{%LOOP L1 {%GET_USER_DATA(文字位置,Count)}(
  {%DW_PASTE_RECT_ANNOTATION({%PAGE_NO},{%GET_USER_DATA(文字位置_[L_IDX(L1)],X)},{%GET_USER_DATA(文字位置_[L_IDX(L1)],Y)},{%GET_USER_DATA(文字位置_[L_IDX(L1)],Width)},{%GET_USER_DATA(文字位置_[L_IDX(L1)],Height)},RectSet)}
)}
例2
P001500を検索して、見つかった文字の位置に矩形アノテーションは貼り付ける。1ワードを構成する矩形が複数の場合は一つの矩形にします。
「マクロをページ単位で処理する」、「最終ページ処理後に文書保存する」にチェックをいれてください。
{%DW_GET_TEXT_POSITION({%PAGE_NO},P001500,文字位置,0,0,0,50)}

{%LOG_OUT(結果:{%GET_USER_DATA(文字位置,Count)})}

{%SET_USER_DATA(RectSet,BorderStyle,なし)} 
{%SET_USER_DATA(RectSet,FillColor,黄)} 
{%SET_USER_DATA(RectSet,FillTransparent,する)} 
{%SET_USER_DATA(RectSet,FillStyle,する)} 

#--

{%LOOP L1 {%GET_USER_DATA(文字位置,Count)}(
  {%IF({%GET_USER_DATA(文字位置_[L_IDX(L1)],RectIndex)}={%GET_USER_DATA(文字位置_[L_IDX(L1)],RectCount)},
    #矩形Index=矩形Countの場合
    {%DW_PASTE_RECT_ANNOTATION({%PAGE_NO},{%GET_USER_DATA(文字位置_[L_IDX(L1)],MergeRectX)},{%GET_USER_DATA(文字位置_[L_IDX(L1)],MergeRectY)},{%GET_USER_DATA(文字位置_[L_IDX(L1)],MergeRectWidth)},{%GET_USER_DATA(文字位置_[L_IDX(L1)],MergeRectHeight)},RectSet)}
  ,)}
)}
NAME 用紙サイズ取得
FORMAT {%DW_GET_PAPER_SIZE(幅,高さ,誤差範囲)}

用紙サイズを返却します。

引数の幅、高さには用紙の幅と高さを指定します。誤差範囲には、幅と高さの誤差の範囲をしていします。すべて1/100ミリ単位で指定します。
通常は幅と高さには、DW_GET_PAGE_INFORMATIONマクロで取得したページや元データの幅や高さを指定します。

返却される用紙サイズは、A0〜A6,B0〜B6,該当なしの何れかになります。用紙サイズの後ろに縦、及び横の文字が付加されて返却されます。
例えば、用紙サイズがA4縦の場合には、「A4縦」という文字が返却されます。定義済の用紙サイズの何れにも該当しない場合は、「該当なし」という文字が返却されます。

用紙の判定は、インストールフォルダにあるPaperSize.iniに記述されている数値を基に行われます。PaperSize.iniに追記、変更することで独自の用紙サイズ判定を行うことが可能です。

例1
処理中の文書の全ページの用紙サイズを表示する。(±10ミリを誤差の許容範囲とする。)
「マクロをページ単位で処理する」にチェックをいれてください。

{%DW_GET_PAGE_INFORMATION({%PAGE_NO})}

{%MSGBOX({%DW_GET_PAPER_SIZE({%GET_USER_DATA(PageInformation,PageWidth)},{%GET_USER_DATA(PageInformation,PageHeight)},1000)})}

NAME 空のバインダを作成
FORMAT {%DW_CREATE_BINDER(バインダファイル名)}

空のバインダを作成します。バインダファイル名は、フルパスで指定してください。

例1
空のバインダを作成する。

{%DW_CREATE_BINDER(C:\Home\Test.xbd)}

NAME バインダにXDW文書を挿入
FORMAT {%DW_INSERT_DOCUMENT_TO_BINDER(XDWファイル名,バインダファイル名[,挿入位置])}

バインダにXDWファイルを挿入します。XDWファイル、及びバインダファイル名は、フルパスで指定してください。挿入位置に1を指定した場合は、バインダの先頭に文書を挿入します。挿入位置を省略した場合は、バインダの末尾に文書を挿入します。

文書の挿入に成功した場合は、戻り値にOKを返却します。

例1
バインダ(C:\Home\Test.xbd)の先頭にXDW文書(C:\Home\doc.xdw)を挿入する。

{%DW_INSERT_DOCUMENT_TO_BINDER(C:\Home\doc.xdw,C:\Home\Test.xbd,1)}

例2
バインダ(C:\Home\Test.xbd)の末尾にXDW文書(C:\Home\doc.xdw)を挿入する。

{%DW_INSERT_DOCUMENT_TO_BINDER(C:\Home\doc.xdw,C:\Home\Test.xbd)}

NAME バインダ内の全ての文書名を取得
FORMAT {%DW_GET_NAMES_OF_ALL_DOCUMENTS_IN_BINDER(バインダファイル名,結果用ユーザーデータ名)}

バインダに格納されている文書の名前を全て取得します。バインダファイル名はフルパスで指定してください。結果はユーザーデータに格納します。「キー:文書番号(1〜)、データ:文書名」の形式で格納されます。

例1
処理中のバインダから、全ての文書名を取得し、ログに出力します。
{%DW_GET_NAMES_OF_ALL_DOCUMENTS_IN_BINDER({%FILE_FULL_PATH},結果)}

#--

{%LOOP L1 {%GET_USER_DATA_COUNT(結果)}(
  {%LOG_OUT(文書[L_IDX(L1)]の名前:{%GET_USER_DATA(結果,[L_IDX(L1)])})}
)}
NAME バインダ内文書の全てのページ数を取得
FORMAT {%DW_GET_PAGES_OF_ALL_DOCUMENTS_IN_BINDER(バインダファイル名,結果用ユーザーデータ名)}

バインダに格納されている文書のページ数を全て取得します。バインダファイル名はフルパスで指定してください。結果はユーザーデータに格納します。「キー:文書番号(1〜)、データ:ページ数」の形式で格納されます。

例1
処理中のバインダから、全ての文書のページ数を取得し、ログに出力します。
{%DW_GET_PAGES_OF_ALL_DOCUMENTS_IN_BINDER({%FILE_FULL_PATH},結果)}

#--

{%LOOP L1 {%GET_USER_DATA_COUNT(結果)}(
  {%LOG_OUT(文書[L_IDX(L1)]のページ数:{%GET_USER_DATA(結果,[L_IDX(L1)])})}
)}
NAME バインダ内文書を全て出力
FORMAT {%DW_GET_ALL_DOCUMENTS_FROM_BINDER(バインダファイル名,出力フォルダ名)}

バインダに格納されている文書を全て出力します。バインダファイル名、出力フォルダ名はフルパスで指定してください。出力フォルダは事前に作成する必要があります。出力フォルダが存在しない場合は、エラーとなります。

また、出力フォルダに出力されるファイルと同名のファイルがある場合も、エラーとなります。

例1
処理中のバインダから、全ての文書を「D:\temp」に出力します。
{%DW_GET_ALL_DOCUMENTS_FROM_BINDER({%FILE_FULL_PATH},D:\temp)}
NAME バインダ内の指定の文書を出力
FORMAT {%DW_GET_DOCUMENT_FROM_BINDER(バインダファイル名,文書番号,出力ファイル名)}

バインダに格納されている文書を、文書番号(1〜)を指定して出力します。バインダファイル名、出力ファイル名はフルパスで指定してください。

出力されるファイルと同名のファイルがある場合は、エラーとなります。

例1
処理中のバインダの1番目の文書を、処理中のファイルと同じフォルダに「text.xdw」で出力します。
{%DW_GET_DOCUMENT_FROM_BINDER({%FILE_FULL_PATH},1,{%FOLDER_PATH}test.xdw)}
NAME バインダ内の指定の文書を削除
FORMAT {%DW_DELETE_DOCUMENT_IN_BINDER(バインダファイル名,文書番号)}

バインダに格納されている文書を、文書番号(1〜)を指定して削除します。バインダファイル名はフルパスで指定してください。

文書の削除に成功した場合は、戻り値にOKを返却します。

例1
処理中のバインダの1番目の文書を削除します。
{%DW_DELETE_DOCUMENT_IN_BINDER({%FILE_FULL_PATH},1)}
NAME 処理中の文書を保存する。
FORMAT {%DW_SAVE_DOCUMENT}

このマクロはアノテーションを大量に追加してから、ページ情報を取得すると、異常に時間がかかってしまう問題の回避用です。

eDocArrangementでは、ファイルのオープン、クローズはマクロ内で行うので、ユーザー様はあまり意識しなくてもよい設計になっています。マクロ実行では、ページ毎にマクロを実行する機能があり、その機能を使った場合は、マクロ毎ではなく、最初にオープンを行い、複数ページ処理した後で、最後に保存とクローズを行うようになります。

DocuWorksAPIには、アノテーション貼り付けを何度も行ったあとに、ページ情報を取得するAPI(GetPageInformation)を呼び出すと異常に時間がかかってしまう問題が存在します。

eDocArrangementでは、ページ情報取得マクロ(DW_GET_PAGE_INFORMATION)や、付箋アノテーション貼り付けマクロ(DW_PASTE_FUSEN_ANNOTATION)で、ページ情報取得のAPIを使用しています。

そのため、複数のアノテーションを貼り付けたあとで、付箋アノテーションを貼り付けるようなマクロを書くと、異常に時間がかかるようになります。

この問題の回避方法として、アノテーションを貼り付けた後で、一度保存を行うと改善されるという現象があります。何度も保存するのは無駄ですが、不具合で待たされる時間より、保存の速度の方が速いので実用として使えます。

使用方法は、複数のアノテーションを貼り付けて、その後、付箋アノテーションを貼り付けたり、ページ情報取得マクロを使ったりする場合は、その直前などで、本マクロを記述してください。

例1
以下のマクロは、矩形と付箋を同じ場所に20個ずつ貼り付けますが、だんだん遅くなっていきます。

「マクロをページ単位で処理する」、「最終ページ処理後に文書保存する」にチェックをいれてください。

{%SET_USER_DATA(FusenSet,FillColor,付箋青)}
{%SET_USER_DATA(FusenSet,AutoResize,しない)}
{%SET_USER_DATA(RectSet,BorderStyle,あり)} 
{%SET_USER_DATA(RectSet,BorderWidth,3)} 
{%SET_USER_DATA(RectSet,BorderColor,水色)} 
{%SET_USER_DATA(RectSet,FillColor,黄緑)} 
{%SET_USER_DATA(RectSet,FillTransparent,しない)} 
{%SET_USER_DATA(RectSet,FillStyle,する)} 

#--

{%LOOP L1 20(
  {%DW_PASTE_RECT_ANNOTATION(1,2101,2449,4945,2416,RectSet)} 
  {%SET_USER_DATA(wk,アノテーション番号,{%DW_PASTE_FUSEN_ANNOTATION(1,1000,5000,4945,2416,FusenSet)})}
)}

以下のように「{%DW_SAVE_DOCUMENT} 」を追加すると、改善します。

{%SET_USER_DATA(FusenSet,FillColor,付箋青)}
{%SET_USER_DATA(FusenSet,AutoResize,しない)}
{%SET_USER_DATA(RectSet,BorderStyle,あり)} 
{%SET_USER_DATA(RectSet,BorderWidth,3)} 
{%SET_USER_DATA(RectSet,BorderColor,水色)} 
{%SET_USER_DATA(RectSet,FillColor,黄緑)} 
{%SET_USER_DATA(RectSet,FillTransparent,しない)} 
{%SET_USER_DATA(RectSet,FillStyle,する)} 

#--

{%LOOP L1 20(
  {%DW_PASTE_RECT_ANNOTATION(1,2101,2449,4945,2416,RectSet)} 
  {%SET_USER_DATA(wk,アノテーション番号,{%DW_PASTE_FUSEN_ANNOTATION(1,1000,5000,4945,2416,FusenSet)})}
  {%DW_SAVE_DOCUMENT} 
)}
NAME オリジナルデータ数取得
FORMAT {%DW_GET_COUNT_OF_ORIGINAL_DATA}

XDW文書等のオリジナルデータの数を取得します。

処理中のファイルが入れ物の場合は、入れ物内のファイルの数を取得します。(DW9以上のみ)

処理中のファイルがバインダの場合は、バインダ内のXDW文書のオリジナルデータの数を取得します。番号は通番となります。

例1
処理中の文書のオリジナルデータ数を取得し、ログに出力します。
{%LOG_OUT({%DW_GET_COUNT_OF_ORIGINAL_DATA})}
NAME オリジナルデータの名前取得
FORMAT {%DW_GET_NAMES_OF_ORIGINAL_DATA(結果用ユーザーデータ名)}

XDW文書等のオリジナルデータのファイル名リストを取得します。

処理中のファイルが入れ物の場合は、入れ物内のファイル名リストを取得します。(DW9以上のみ)

処理中のファイルがバインダの場合は、バインダ内のXDW文書のオリジナルデータのファイル名リストを取得します。番号は通番となります。

結果は「キー:番号(1〜)、データ:ファイル名」の形式で格納されます。

例1
処理中の文書のオリジナルデータのファイル名リストを取得し、1番目の名前をログに出力します。
{%DW_GET_NAMES_OF_ORIGINAL_DATA(結果)}
{%LOG_OUT({%GET_USER_DATA(結果,1)})}
NAME オリジナルデータ取得
FORMAT {%DW_GET_ORIGINAL_DATA(番号,出力ファイル名)}

XDW文書等のオリジナルデータをファイルに出力します。番号には、1〜オリジナルデータ数のいずれかを指定します。

処理中のファイルが入れ物の場合は、入れ物内のファイルを出力します。(DW9以上のみ)

処理中のファイルがバインダの場合は、バインダ内のXDW文書のオリジナルデータを出力します。番号の指定は通番となります。

出力先に同名のファイルがある場合は、ファイル名の末尾に連番を付与して、重ならないファイル名で出力されます。

例1
1番目のオリジナルデータを「D:\Home」に出力する。ファイル名はオリジナルデータのファイル名とする。
{%DW_GET_NAMES_OF_ORIGINAL_DATA(結果)}
{%DW_GET_ORIGINAL_DATA(1,D:\Home\{%GET_USER_DATA(結果,1)})}
NAME オリジナルデータ挿入
FORMAT {%DW_INSERT_ORIGINAL_DATA(挿入先ファイル名,挿入元ファイル名,[位置])}

XDW文書等にオリジナルデータを挿入します。挿入元ファイル名には、オリジナルデータを格納するXDW文書、又は入れ物(DW9以上のみ)を指定します。挿入元ファイル名には、オリジナルデータとして挿入するファイルを指定します。位置は、挿入する位置の番号(1〜)を指定します。位置を省略すると末尾に挿入されます。

挿入先ファイル名に入れ物を指定した場合は、入れ物にファイルを挿入します。(DW9以上のみ)

オリジナルデータの挿入は、バインダに対して行う事ができません。(エラーとなります。)

オリジナルデータの挿入に成功した場合は、戻り値にOKを返却します。

オリジナルデータを挿入すると、挿入した位置以降の番号が後ろにずれます。例えば、以下のような状態で、

1:aaa.pdf
2:bbb.pdf

1の位置に「ccc.pdf」を挿入すると以下のようになります。

1:ccc.pdf
2:aaa.pdf
3:bbb.pdf
例1
処理中ファイルのオリジナルデータの末尾に、「D:\Home\文書1.pdf」を挿入します。
{%DW_INSERT_ORIGINAL_DATA({%FILE_FULL_PATH},D:\Home\文書1.pdf)}
NAME オリジナルデータ削除
FORMAT {%DW_DELETE_ORIGINAL_DATA(ファイル名,番号)}

XDW文書等のオリジナルデータを削除します。ファイル名には、オリジナルデータを削除するXDW文書、バインダー、又は入れ物(DW9以上のみ)を指定します。位置は、削除する番号(1〜)を指定します。

ファイル名に入れ物を指定した場合は、入れ物内のファイルを削除します。(DW9以上のみ)

ファイル名にバインダーを指定した場合は、バインダ内のXDW文書のオリジナルデータを削除します。番号の指定は通番となります。

オリジナルデータの削除に成功した場合は、戻り値にOKを返却します。

オリジナルデータを削除すると、削除した位置以降の番号が前にずれます。例えば、以下のような状態で、

1:aaa.pdf
2:bbb.pdf
3:ccc.pdf

1を削除すると以下のようになります。

1:bbb.pdf
2:ccc.pdf
例1
処理中ファイルの1番目のオリジナルデータを削除します。
{%DW_DELETE_ORIGINAL_DATA({%FILE_FULL_PATH},1)}