処理中ファイル書式 | 状態取得書式 | ユーザーデータ書式 | グローバルデータ書式 | ローカルデータ書式 | 日付書式 | 文字列書式 | 数学書式 | 制御書式 | ファイルシステム書式 | テキストファイル書式 | データベース書式 | プロセス書式 | Web書式 | DocuWorks書式 | DocuWorks書式 (アノテーション関連) | PDF書式 | Excel書式 | 画像処理書式 | その他の書式
DocuWorks文書(XDW/XBD)をオープンします。オープンした文書は、XDW文書オープン処理名で識別され、他のDocuWorksマクロから参照できます。
フルパスファイル名にはオープンするDocuWorks文書のフルパスを指定します。
オプションにはオープン時の動作を指定するユーザーデータ名を指定します。オプションは省略可能で、省略した場合は既定値が使用されます。
オプション(ユーザーデータ)の属性
| 名前 | 値 | 説明 |
|---|---|---|
| OpenMode | 読み込み専用 読み書き可能 |
オープンモードを指定します。既定値は「読み書き可能」です。 |
| Extract | する しない |
文書またはオリジナルデータを展開するかどうかを指定します。バインダーの場合はバインダー内の文書を展開し、ドキュメント・入れ物の場合はオリジナルデータを展開します。既定値は「しない」です。 |
| BinderSize | A3縦 A3横 A4縦 A4横 A5縦 A5横 B4縦 B4横 B5縦 B5横 ページ最大サイズ |
バインダーを新規作成する場合のサイズを指定します。既定値は「ページ最大サイズ」です。 |
| BinderColor | 紺 緑 青 黄 オレンジ 赤 赤紫 ピンク 紫 茶 オリーブ 黄緑 水 クリーム 灰 白 |
バインダーを新規作成する場合のカラーを指定します。既定値は「青」です。 |
{%DW_OPEN(XDW文書オープン1,{%GET(FullPathFileName)})}
{%SET_U(DwOpenOption,OpenMode,読み書き可能)}
{%SET_U(DwOpenOption,Extract,する)}
{%DW_OPEN(XDW文書オープン1,{%GET(FullPathFileName)},DwOpenOption)}
{%SET_U(DwOpenOption,OpenMode,読み込み専用)}
{%DW_OPEN(XDW文書オープン1,{%GET(FullPathFileName)},DwOpenOption)}
{%SET_U(DwOpenOption,OpenMode,読み書き可能)}
{%SET_U(DwOpenOption,BinderSize,A4縦)}
{%SET_U(DwOpenOption,BinderColor,紺)}
{%DW_OPEN(XDW文書オープン1,{%GET(FullPathFileName)},DwOpenOption)}
DW_OPENでオープンされたDocuWorks文書をクローズします。XDW文書オープン処理名には、DW_OPENで指定したオープン処理名を指定します。
オプションにはクローズ時の動作を指定するユーザーデータ名を指定します。オプションは省略可能で、省略した場合は既定値が使用されます。
オプション(ユーザーデータ)の属性
| 名前 | 値 | 説明 |
|---|---|---|
| SaveFile | 保存する 保存しない |
クローズ時に文書を保存するかどうかを指定します。既定値は「保存する」です。 |
| PositionToAddBinder | 先頭 末尾 |
バインダー内文書やオリジナルデータを展開して操作した場合の、ファイル追加位置を指定します。既定値は「末尾」です。 |
{%DW_CLOSE({%DW_GET(OpenName)})}
{%SET_U(DwCloseOption,SaveFile,保存する)}
{%DW_CLOSE({%DW_GET(OpenName)},DwCloseOption)}
{%SET_U(DwCloseOption,SaveFile,保存しない)}
{%DW_CLOSE({%DW_GET(OpenName)},DwCloseOption)}
{%SET_U(DwCloseOption,SaveFile,保存する)}
{%SET_U(DwCloseOption,PositionToAddBinder,先頭)}
{%DW_CLOSE({%DW_GET(OpenName)},DwCloseOption)}
{%SET_U(DwOpenOption,OpenMode,読み書き可能)}
{%DW_OPEN(XDW文書オープン1,{%GET(FullPathFileName)},DwOpenOption)}
ここで文書に対する処理を行う
例: {%DW_DOCUMENT_INFO({%DW_GET(OpenName)},DocInfo)}
{%SET_U(DwCloseOption,SaveFile,保存する)}
{%DW_CLOSE({%DW_GET(OpenName)},DwCloseOption)}
文書情報を取得します。XDW文書オープンでオープンされている文書の文書情報を取得します。結果格納用ユーザーデータ名には取得した情報を格納するユーザーデータ名を指定します。
結果格納用ユーザーデータの内容
| 名前 | 値 | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Pages | 文書内の総ページ数。バインダの場合はバインダ内の全文書のページ数合計。 | ||||||||||||||||||
| Version |
DocuWorksファイルのバージョン。
|
||||||||||||||||||
| OriginalData | オリジナルデータの数。バインダの場合はバインダ内の全文書のオリジナルデータ数合計。 | ||||||||||||||||||
| DocType | ドキュメントタイプ。以下の何れか。ドキュメント バインダー |
||||||||||||||||||
| Permission |
認可情報。以下の何れか。複数設定されている場合は、「文書の編集|アノテーションの編集」のように|で区切られて取得される。
文書の編集 アノテーションの編集 印刷 転記 |
||||||||||||||||||
| ShowAnnotations | アノテーションの表示状態。以下の何れか。非表示 表示 |
||||||||||||||||||
| Documents | バインダー内の文書数。バインダーの場合のみ意味のある値として取得される。 | ||||||||||||||||||
| BinderColor |
バインダーの色。以下の何れか。バインダーの場合のみ取得される。
紺 緑 青 黄 オレンジ 赤 赤紫 ピンク 紫 茶 オリーブ 黄緑 水 クリーム 灰 白 |
||||||||||||||||||
| BinderSize | バインダーのサイズ。以下の何れか。バインダーの場合のみ取得される。ページ最大サイズ A3縦 A3横 A4縦 A4横 A5縦 A5横 B4縦 B4横 B5縦 B5横 |
{%DW_DOCUMENT_INFO(XDW文書オープン1,DocInfo)}
{%WRITE_LOG(
Pages={%GET_USER_DATA(DocInfo,Pages)}
Version={%GET_USER_DATA(DocInfo,Version)}
OriginalData={%GET_USER_DATA(DocInfo,OriginalData)}
DocType={%GET_USER_DATA(DocInfo,DocType)}
Permission={%GET_USER_DATA(DocInfo,Permission)}
ShowAnnotations={%GET_USER_DATA(DocInfo,ShowAnnotations)}
Documents={%GET_USER_DATA(DocInfo,Documents)}
BinderColor={%GET_USER_DATA(DocInfo,BinderColor)}
BinderSize={%GET_USER_DATA(DocInfo,BinderSize)}
)}
結果
Pages=2
Version=7
OriginalData=0
DocType=ドキュメント
Permission=文書の編集|アノテーションの編集|印刷|転記
ShowAnnotations=表示
Documents=0
BinderColor=
BinderSize=
{%DW_DOCUMENT_INFO(XDW文書オープン1,DocInfo)}
{%WRITE_LOG(
Pages={%GET_USER_DATA(DocInfo,Pages)}
Version={%GET_USER_DATA(DocInfo,Version)}
OriginalData={%GET_USER_DATA(DocInfo,OriginalData)}
DocType={%GET_USER_DATA(DocInfo,DocType)}
Permission={%GET_USER_DATA(DocInfo,Permission)}
ShowAnnotations={%GET_USER_DATA(DocInfo,ShowAnnotations)}
Documents={%GET_USER_DATA(DocInfo,Documents)}
BinderColor={%GET_USER_DATA(DocInfo,BinderColor)}
BinderSize={%GET_USER_DATA(DocInfo,BinderSize)}
)}
結果
Pages=2
Version=7
OriginalData=0
DocType=バインダー
Permission=文書の編集|アノテーションの編集|印刷|転記
ShowAnnotations=表示
Documents=2
BinderColor=黄
BinderSize=ページ最大サイズ
バインダー内の文書情報を取得します。XBD文書オープンでオープンされているバインダー内の文書情報を取得します。結果格納用ユーザーデータ名には取得した情報を格納するユーザーデータ名を指定します。
本マクロはバインダー以外のファイルに対して実行するとエラーとなります。
結果格納用ユーザーデータの内容は、DW_DOCUMENT_INFOで取得される情報に加え、以下の情報がセットされます。
| 第2キー | 名前 | 値 |
|---|---|---|
| 文書番号(1~) | DocumentName | 文書内の文書名。 |
| 第2キー | 第3キー | 名前 | 値 |
|---|---|---|---|
| 文書番号(1~) | SerialPageNumber | 文書のページ番号(1~) | バインダーの通しページ番号 |
{%DW_DOCUMENT_INFO_IN_BINDER(XBD文書オープン1,DocInfo)}
{%LOOP L1 {%GET_USER_DATA_KEY_COUNT(DocInfo)}(
{%WRITE_LOG(DocumentName:{%GET_U(DocInfo,[L_IDX(L1)],DocumentName)})}
{%WRITE_LOG(Pages:{%GET_U(DocInfo,[L_IDX(L1)],Pages)})}
{%WRITE_LOG(Version:{%GET_U(DocInfo,[L_IDX(L1)],Version)})}
{%WRITE_LOG(ページ1のバインダー通し番号:{%GET_U(DocInfo,[L_IDX(L1)],SerialPageNumber,1)})}
)}
結果
DocumentName:文書1.xdw
Pages:2
Version:9
ページ1のバインダー通し番号:1
DocumentName:文書2.xdw
Pages:1
Version:9
ページ1のバインダー通し番号:3
ページ情報を取得します。XDW文書オープンでオープンされている文書から、引き数で指定されたページの情報を取得します。ページを省略した場合はページの繰り返し処理の現在のページが対象となります。結果格納用ユーザーデータ名には取得した情報を格納するユーザーデータ名を指定します。
本マクロはXDW文書のページの繰り返し処理の中のマクロ実行に記述してください。(ページを省略した場合)
ページを指定する場合は、第1引数に「#Page」(FORMAT2)を指定します。
結果格納用ユーザーデータの内容
| キー | 値 |
|---|---|
| Width | ページの横幅。 単位 : mm 小数第2位まで有効 |
| Height | ページの縦幅。 単位 : mm 小数第2位まで有効 |
| PageType | ページの種類。以下の何れか。イメージ アプリケーション 新規作成 |
| HorRes | 水平方向の解像度。ページタイプが新規作成の場合は意味を持たない。 単位 : dpi |
| VerRes | 垂直方向の解像度。ページタイプが新規作成の場合は意味を持たない。 単位 : dpi |
| CompressType |
圧縮方式。以下の何れか。ページタイプがアプリケーション、新規作成の場合は意味を持たない。
標準 劣化無圧縮 劣化有高画質JPEG 劣化有高圧縮JPEG 圧縮なし 外部JPEG PACKBITS G4 劣化有標準MRC 劣化有高画質MRC 劣化有高圧縮MRC 外部MRC JPEG_TTN2 |
| Annotations | ページ内のアノテーションの数。 |
| Degree | 回転角度。以下の何れか。ページタイプが新規作成の場合は意味を持たない。0度 90度 180度 270度 |
| OrgWidth | 元データのページの横幅。不明な場合は0。ページタイプが新規作成の場合は意味を持たない。 単位 : mm 小数第2位まで有効 |
| OrgHeight | 元データのページの縦幅。不明な場合は0。ページタイプが新規作成の場合は意味を持たない。 単位 : mm 小数第2位まで有効 |
| OrgHorRes | 元データの水平方向の解像度。不明な場合は0。ページタイプが新規作成の場合は意味を持たない。 単位 : dpi |
| OrgVerRes | 元データの垂直方向の解像度。不明な場合は0。ページタイプが新規作成の場合は意味を持たない。 単位 : dpi |
| ImageWidth | 元データの水平方向のピクセル数。ページタイプがアプリケーション、新規作成の場合は意味を持たない。 |
| ImageHeight | 元データの垂直方向のピクセル数。ページタイプがアプリケーション、新規作成の場合は意味を持たない。 |
{%DW_PAGE_INFO(XDW文書オープン1,PageInfo)}
{%WRITE_LOG(
Width={%GET_USER_DATA(PageInfo,Width)}
Height={%GET_USER_DATA(PageInfo,Height)}
PageType={%GET_USER_DATA(PageInfo,PageType)}
HorRes={%GET_USER_DATA(PageInfo,HorRes)}
VerRes={%GET_USER_DATA(PageInfo,VerRes)}
CompressType={%GET_USER_DATA(PageInfo,CompressType)}
Annotations={%GET_USER_DATA(PageInfo,Annotations)}
Degree={%GET_USER_DATA(PageInfo,Degree)}
OrgWidth={%GET_USER_DATA(PageInfo,OrgWidth)}
OrgHeight={%GET_USER_DATA(PageInfo,OrgHeight)}
OrgHorRes={%GET_USER_DATA(PageInfo,OrgHorRes)}
OrgVerRes={%GET_USER_DATA(PageInfo,OrgVerRes)}
ImageWidth={%GET_USER_DATA(PageInfo,ImageWidth)}
ImageHeight={%GET_USER_DATA(PageInfo,ImageHeight)}
)}
結果
Width=210
Height=297
PageType=イメージ
HorRes=204
VerRes=204
CompressType=劣化無圧縮
Annotations=3
Degree=0度
OrgWidth=215.16
OrgHeight=293.93
OrgHorRes=204
OrgVerRes=98
ImageWidth=1728
ImageHeight=1134
ページカラー情報を取得します。XDW文書オープンでオープンされている文書から、引き数で指定されたページのカラー情報を取得します。ページを省略した場合はページの繰り返し処理の現在のページが対象となります。結果格納用ユーザーデータ名には取得した情報を格納するユーザーデータ名を指定します。
ページカラー情報の取得はページの属性情報取得に比べて、遅いです。場合によっては1秒以上かかる場合があります。
本マクロはXDW文書のページの繰り返し処理の中のマクロ実行に記述してください。(ページを省略した場合)
ページを指定する場合は、第1引数に「#Page」(FORMAT2)を指定します。
結果格納用ユーザーデータの内容
| キー | 値 |
|---|---|
| Color | ページのカラー。以下の何れか。白黒 カラー |
| ImageDepth | ピクセル当たりのビット数。イメージから作成されたページでない場合は0となる。 |
{%DW_PAGE_COLOR_INFO(XDW文書オープン1,PageColorInfo)}
{%WRITE_LOG(
Color={%GET_USER_DATA(PageColorInfo,Color)}
ImageDepth={%GET_USER_DATA(PageColorInfo,ImageDepth)}
)}
結果
Color=白黒
ImageDepth=1
処理中ページのカウンタを取得します。本マクロはページの繰り返しの中で使用できます。
{%WRITE_LOG({%DW_GET(PageLoopCount)})}
結果
3
処理中ファイルのページ数を取得します。本マクロはページの繰り返しの中で使用できます。ページの繰り返し処理パネルでは使用できません。DW_DOCUMENT_INFOのPagesを参照してください。
{%WRITE_LOG({%DW_GET(PageCount)})}
結果
5
ページの幅(mm)を取得します。本マクロはページの繰り返しの中で使用できます。ページの繰り返し処理パネルでは使用できません。DW_PAGE_INFOのWidthを参照してください。
{%WRITE_LOG(幅:{%DW_GET(PageWidth)})}
結果
幅:210
ページの高さ(mm)を取得します。本マクロはページの繰り返しの中で使用できます。ページの繰り返し処理パネルでは使用できません。DW_PAGE_INFOのHeightを参照してください。
{%WRITE_LOG(高さ:{%DW_GET(PageHeight)})}
結果
高さ:297
現在オープンされているXDW文書オープン処理名を取得します。同時に複数オープンされている場合は最後にオープンされたXDW文書オープン処理名を取得します。
{%DW_SET_DOCUMENT_ATTRIBUTE({%DW_GET(OpenName)},処理日,{%DATE(yyyy/MM/dd)},Date)}
用紙サイズを返却します。
引数の幅、高さには用紙の幅と高さを指定します。誤差範囲には、幅と高さの誤差の範囲をしていします。すべてミリ単位で指定します。
通常は幅と高さには、ページ幅取得マクロ({%DW_GET(PageWidth)})、ページ高さ取得マクロ({%DW_GET(PageHeight)})又は、DW_GET_PAGE_INFOマクロで取得したページや元データの幅や高さを指定します。
返却される用紙サイズは、A0~A6,B0~B6,該当なしの何れかになります。用紙サイズの後ろに縦、及び横の文字がカンマ区切りで付加されて返却されます。
例えば、用紙サイズがA4縦の場合には、「A4,縦」という文字が返却されます。定義済の用紙サイズの何れにも該当しない場合は、「該当なし」という文字が返却されます。
用紙の判定は、引き数の用紙サイズ定義ファイルを省略した場合、インストールフォルダにあるPaperSize.iniに記述されている数値を基に行われます。用紙サイズの定義を変更したい場合は、PaperSize.iniをユーザーフォルダ等にコピーして変更してください。コピーしたファイルのパスを引数の用紙サイズ定義ファイルに指定します。
{%IF({%DW_GET_PAPER_SIZE({%DW_GET(PageWidth)},{%DW_GET(PageHeight)},10)}=該当なし,
{%SET_U(属性,用紙サイズ,該当なし)}
,
{%SPLIT({%DW_GET_PAPER_SIZE({%DW_GET(PageWidth)},{%DW_GET(PageHeight)},10)},|,,用紙情報)}
{%SET_U(属性,用紙サイズ,{%GET_U(用紙情報,1)})}
{%SET_U(属性,用紙向き,{%GET_U(用紙情報,2)})}
)}
{%WRITE_LOG(用紙サイズ:{%GET_U(属性,用紙サイズ)})}
{%WRITE_LOG(用紙向き:{%GET_U(属性,用紙向き)})}
XDW文書オープン処理名で指定されたDocuWorks文書に、文書属性を設定します。
属性名は、255文字以内で指定してください。 属性値は、指定した型に適した文字列を指定します。型に適合しない文字列を指定した場合は、エラーとなります。
型には、"Integer" (数値型), "String" (文字列型)[既定値], "Date" (日付型), "Bool" (真偽値型)の何れかが指定できます。 型が、日付型の場合は、「YYYY/MM/DD」の様に、年/月/日のフォーマットで指定します。 真偽値型では、「TRUE」(有)又は、「FALSE」(無)を指定します。
型は省略可能です。省略した場合には、文字列型が選択されます。
属性名に以下の名前を指定した場合は、概要タブの各項目を設定できます。
| 名前 | 内容 |
|---|---|
| %Title | タイトル |
| %Subject | サブタイトル |
| %Author | 作成者 |
| %Keywords | キーワード |
| %Comments | コメント |
{%DW_SET_DOCUMENT_ATTRIBUTE(XDW文書オープン1,文書名,{%GET_U(QRコード読み取り1,1,Data)})}
{%DW_SET_DOCUMENT_ATTRIBUTE(XDW文書オープン1,処理日,{%DATE(yyyy/MM/dd)},Date)}
{%DW_SET_DOCUMENT_ATTRIBUTE(XDW文書オープン1,%Title,サンプル)}
XDW文書オープン処理名で指定されたDocuWorks文書から、文書属性を取得します。
属性名は、255文字以内で指定してください。
属性名に以下の名前を指定した場合は、概要タブの各項目を取得できます。
| 名前 | 内容 |
|---|---|
| %Title | タイトル |
| %Subject | サブタイトル |
| %Author | 作成者 |
| %Keywords | キーワード |
| %Comments | コメント |
未定義時の処理を省略した場合またはエラーを指定した場合は、存在しない属性名を指定した場合にエラーとなります。
未定義時の処理に空文字返却を指定した場合は、存在しない属性名を指定した場合に空文字が返却されます。
{%WRITE_LOG({%DW_GET_DOCUMENT_ATTRIBUTE({%DW_GET(OpenName)},文書名,空文字返却)})}
{%WRITE_LOG({%DW_GET_DOCUMENT_ATTRIBUTE(XDW文書オープン1,%Title)})}
属性名で指定された文書属性の存在チェックを行います。
指定した属性が存在する場合は、Trueを、存在しない場合はFalseを返却します。
{%DW_SET_DOCUMENT_ATTRIBUTE(XDW文書オープン1,処理日,{%DATE(yyyy/MM/dd)},Date)}
{%IF({%DW_EXISTS_DOCUMENT_ATTRIBUTE(XDW文書オープン1,処理日)}=True,
{%WRITE_LOG(属性あり)}
,
{%WRITE_LOG(属性なし)}
)}
結果
属性あり
属性名で指定された文書属性を削除します。
{%DW_DELETE_DOCUMENT_ATTRIBUTE(XDW文書オープン1,FAX番号)}
全ての文書属性を削除します。
Summaryを指定すると概要の属性も削除対象となります。
#概要を除く全てのユーザー定義の文書属性を削除
{%DW_DELETE_ALL_DOCUMENT_ATTRIBUTE(XDW文書オープン1)}
#概要とユーザー定義の文書属性を削除
{%DW_DELETE_ALL_DOCUMENT_ATTRIBUTE(XDW文書オープン1,Summary)}
ユーザーデータにセットされた属性情報を文書属性に設定します。
ユーザーデータには、属性として登録したいキーと値をセットします。型の指定は、末尾に「_Type」を付与したキーに、"Integer" (数値型), "String" (文字列型)[既定値], "Date" (日付型), "Bool" (真偽値型)の何れかをセットします。
概要タブの項目を指定したい場合は、キーに%で始まる識別キーをセットします。識別キーの詳細は、文書属性取得マクロの説明を参照してください。
#型を指定する場合
{%SET_U(文書属性,見積もり番号,1)}
{%SET_U(文書属性,見積もり番号_Type,Integer)}
{%DW_SET_ALL_DOCUMENT_ATTRIBUTE(XDW文書オープン1,文書属性)}
#型を指定しない場合は文字列で登録される。
{%SET_U(文書属性,FAX番号,03-5555-0000)}
{%DW_SET_ALL_DOCUMENT_ATTRIBUTE(XDW文書オープン1,文書属性)}
#概要文書属性の場合は定義されたキーワードをキーに指定する。
#型は指定しても無視される。
{%SET_U(文書属性,%Title,見積もり書)}
{%DW_SET_ALL_DOCUMENT_ATTRIBUTE(XDW文書オープン1,文書属性)}
全ての文書属性を取得してユーザーデータにセットします。
以下の様な構造でセットされます。
指定したユーザーデータ名 属性名 属性値 属性名_Type 属性の型 属性名 属性値 属性名_Type 属性の型 ・ ・
既にユーザーデータが存在する場合は取得データで上書きします。
Summaryを指定すると概要の属性も取得対象となります。
#概要を除く全属性
{%DW_GET_ALL_DOCUMENT_ATTRIBUTE(XDW文書オープン1,文書属性)}
{%WRITE_LOG(FAX番号:{%GET_U(文書属性,FAX番号)})}
{%WRITE_LOG(FAX番号_Type:{%GET_U(文書属性,FAX番号_Type)})}
#概要を含む全属性
{%DW_GET_ALL_DOCUMENT_ATTRIBUTE(XDW文書オープン1,文書属性,Summary)}
{%WRITE_LOG(FAX番号:{%GET_U(文書属性,FAX番号)})}
{%WRITE_LOG(FAX番号_Type:{%GET_U(文書属性,FAX番号_Type)})}
{%WRITE_LOG(%Title:{%GET_U(文書属性,%Title)})}
{%WRITE_LOG(%Title_Type:{%GET_U(文書属性,%Title_Type)})}
{%WRITE_LOG(%Subject:{%GET_U(文書属性,%Subject)})}
{%WRITE_LOG(%Subject_Type:{%GET_U(文書属性,%Subject_Type)})}
{%WRITE_LOG(%Author:{%GET_U(文書属性,%Author)})}
{%WRITE_LOG(%Author_Type:{%GET_U(文書属性,%Author_Type)})}
{%WRITE_LOG(%Keywords:{%GET_U(文書属性,%Keywords)})}
{%WRITE_LOG(%Keywords_Type:{%GET_U(文書属性,%Keywords_Type)})}
{%WRITE_LOG(%Comments:{%GET_U(文書属性,%Comments)})}
{%WRITE_LOG(%Comments_Type:{%GET_U(文書属性,%Comments_Type)})}
#すべての文書属性を取得
{%DW_GET_ALL_DOCUMENT_ATTRIBUTE({%DW_GET(OpenName)},文書属性)}
#すべての文書属性の繰り返し
{%LOOP L1 {%GET_USER_DATA_COUNT(文書属性)}(
{%SET_U(属性,属性名,{%GET_USER_DATA_KEY_BY_NUMBER(文書属性,[L_IDX(L1)])})}
{%IF({%REGEX_CAPTURE(^(お問い合わせ番号\d+)$,{%GET_U(属性,属性名)})}!=,
#「お問い合わせ番号 + 番号」に合致する属性名の場合
#属性を削除
{%DW_DELETE_DOCUMENT_ATTRIBUTE({%DW_GET(OpenName)},{%GET_U(属性,属性名)})}
,)}
)}
処理中のXDW文書に引数で指定したXDW文書から文書属性をコピーします。
2番目の引き数にSummaryを指定すると文書属性の概要がコピーされます。Userを指定するとユーザー定義属性がコピーされます。Summary|Userを指定すると両方がコピーされます。
{%DW_COPY_ATTRIBUTE(XDW文書オープン1,D:\Home\temp\moto.xdw,Summary|User)}
XDW文書オープン処理名で指定されたDocuWorks文書に、ページユーザー属性を設定します。
属性名は、255文字以内で指定してください。
ページを省略した場合はページの繰り返し処理の現在のページが対象となります。従って、ページの繰り返し処理の中に記述してください。
ページを指定する場合は、第1引数に「#Page」(FORMAT2)を指定します。
属性名と値は、SJISで表現可能な文字のみ設定可能です。UNICODE特有の文字をセットすると文字化けします。
ページユーザー属性は、APIでのみ取得・設定が可能な属性で、DocuWorksViewer,Deskからは操作できません。
{%DW_SET_PAGE_USER_ATTRIBUTE(XDW文書オープン1,図面名,{%GET_U(QRコード読み取り1,1,Data)})}
{%DW_SET_PAGE_USER_ATTRIBUTE(#Page,XDW文書オープン1,1,図面名,{%GET_U(QRコード読み取り1,1,Data)})}
XDW文書オープン処理名で指定されたDocuWorks文書から、ページユーザー属性を取得します。
属性名は、255文字以内で指定してください。
ページを省略した場合はページの繰り返し処理の現在のページが対象となります。従って、ページの繰り返し処理の中に記述してください。
ページを指定する場合は、第1引数に「#Page」(FORMAT2)を指定します。
属性名に存在しない名前を指定した場合は、エラーとならず空文字が返却されます。
ページユーザー属性は、APIでのみ取得・設定が可能な属性で、DocuWorksViewer,Deskからは操作できません。
{%WRITE_LOG({%DW_GET_PAGE_USER_ATTRIBUTE(XDW文書オープン1,図面名)})}
{%WRITE_LOG({%DW_GET_PAGE_USER_ATTRIBUTE(#Page,XDW文書オープン1,1,図面名)})}
XDW文書オープン処理名で指定されたDocuWorks文書から、ページユーザー属性を削除します。
属性名は、255文字以内で指定してください。
ページを省略した場合はページの繰り返し処理の現在のページが対象となります。従って、ページの繰り返し処理の中に記述してください。
ページを指定する場合は、第1引数に「#Page」(FORMAT2)を指定します。
ページユーザー属性は、APIでのみ取得・設定が可能な属性で、DocuWorksViewer,Deskからは操作できません。
{%DW_DELETE_PAGE_USER_ATTRIBUTE(XDW文書オープン1,図面名)}
{%DW_DELETE_PAGE_USER_ATTRIBUTE(#Page,XDW文書オープン1,1,図面名)}
ページのノイズ除去を行います。強さにはNormal(普通),Weak(弱),Strong(強)の何れかが指定可能です。
ページを省略した場合はページの繰り返し処理の現在のページが対象となります。従って、ページの繰り返し処理の中に記述してください。
ページを指定する場合は、第1引数に「#Page」(FORMAT2)を指定します。
白黒のXDW文書のみ処理可能です。
{%DW_REDUCE_PAGE_NOISE(XDW文書オープン1,Normal)}
ページの回転(時計回り)を行います。角度には90 , 180 , 270 の何れかが指定可能です。
ページを省略した場合はページの繰り返し処理の現在のページが対象となります。従って、ページの繰り返し処理の中に記述してください。
ページを指定する場合は、第1引数に「#Page」(FORMAT2)を指定します。
アノテーションが貼られている場合はエラーとなります。(DocuWorks Viewerでは、アノテーションが貼られていても回転可能になりましたが、DocuWorksAPIを使った回転は未対応なので、エラーとなります。)
{%DW_ROTATE_PAGE(XDW文書オープン1,90)}
ページの自動正立を行います。
ページを省略した場合はページの繰り返し処理の現在のページが対象となります。従って、ページの繰り返し処理の中に記述してください。
ページを指定する場合は、第1引数に「#Page」(FORMAT2)を指定します。
対象の文書がアプリケーション文書の場合はエラーとなります。イメージ文書(スキャンした文書など)を対象にしてください。また、アノテーションが貼られている場合はエラーとなります。
{%DW_ROTATE_PAGE_AUTO(XDW文書オープン1)}
XDW文書オープンでオープンされている文書から、指定した輝度範囲に該当するピクセルの割合を取得します。戻り値は0.0000~1.0000の小数値です。白紙判定に使用できます。
ページを省略した場合はページの繰り返し処理の現在のページが対象となります。ページを指定する場合は、第1引数に「#Page」(FORMAT2)を指定します。
各オプション引数は省略可能です。省略する場合は空文字(,,)を指定します。末尾の引数は省略できます。
輝度は0(黒)~255(白)の範囲で指定します。各ピクセルのRGB値からITU-R BT.601規格(0.299*R + 0.587*G + 0.114*B)で算出されます。
分割数を指定すると、画像をグリッド状に分割してブロック単位で判定します。各ブロックの輝度割合がブロック閾値以上であれば「白紙ブロック」と見なし、全ブロック中の白紙ブロックの割合を返します。数行の文字だけが書かれたページを白紙と誤判定しないようにする場合に有効です。
本マクロはページの画像を内部的にBitmapに変換して解析するため、ページの属性情報取得に比べて処理時間がかかります。DPIを大きくすると精度が上がりますが処理時間も増加します。
本マクロは白紙判定を行う用途で使用できますが、簡単に白紙判定ができるというものではございません。
少々の汚れなどがあっても白紙とみなすのか等の判断は個人の感覚で変わってしまいます。また、白紙に文字が数文字だけあるような判断が難しいケースもあります。
本マクロは文字認識などは行っておらず、ページ全体、またはページを複数の区画に分けて、その領域内の指定した輝度の割合を返却する仕様としています。
そのため、実際に使用する用紙で確認しながら、閾値や輝度の範囲、返却される割合の判定値を調整してください。
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
| 処理名 | (必須) | XDW文書オープンの処理名を指定します。 |
| DPI | 72 | Bitmapに変換する際の解像度(1~2400)。大きいほど精度が上がるが処理時間が増加します。 |
| 分割数 | 0(全体判定) | 画像を縦横に分割するブロック数(0~100)。0の場合は全体判定。例: 10を指定すると10×10=100ブロックに分割。 |
| ブロック閾値 | 0.95 | 各ブロックを白紙と見なす輝度割合の閾値(0.0~1.0)。分割数が1以上の場合に使用。 |
| 最小輝度 | 230 | カウント対象とする輝度の下限値(0~255)。 |
| 最大輝度 | 255 | カウント対象とする輝度の上限値(0~255)。 |
{%IF({%DW_BRIGHTNESS_RATIO(XDW文書オープン1)}>0.95,
{%WRITE_LOG(白紙です)},
{%WRITE_LOG(白紙ではありません)}
)}
{%IF({%DW_BRIGHTNESS_RATIO(XDW文書オープン1,150,20,0.95)}>0.95,
{%WRITE_LOG(白紙です)},
{%WRITE_LOG(白紙ではありません)}
)}
{%WRITE_LOG(黒ピクセル割合: {%DW_BRIGHTNESS_RATIO(XDW文書オープン1,,,,0,25)})}
{%WRITE_LOG(1ページ目の白割合: {%DW_BRIGHTNESS_RATIO(#Page,XDW文書オープン1,1)})}
XDW文書オープン処理名で指定したオープン中のDocuWorks文書の指定ページを削除します。
本マクロはXDW文書オープン処理後、又は、ページの繰り返しの中で使用できます。ページの繰り返しの中で使用する場合はページ数が動的に変化しますので、ページの繰り返し設定で繰り返し方向を「末尾から」に設定してください。
{%DW_DELETE_PAGE(XDW文書オープン1,1)}
XDW文書オープン処理名で指定したオープン中のDocuWorks文書の指定ページに別のXDW文書を挿入します。文書は指定ページの前に挿入されます。また、ページに「BOTTOM」を指定すると、末尾に挿入されます。
本マクロはXDW文書オープン処理後、又は、ページの繰り返しの中で使用できます。ページの繰り返しの中で使用する場合はページ数が動的に変化しますので、ページの繰り返し設定で繰り返し方向を「末尾から」に設定してください。
{%DW_INSERT_DOCUMENT(XDW文書オープン1,2,C:\Home\AppData\Desktop\scan.xdw)}
{%DW_INSERT_DOCUMENT(XDW文書オープン1,BOTTOM,C:\Home\AppData\Desktop\scan.xdw)}
XDW文書オープン処理名で指定したオープン中のDocuWorks文書の指定ページを、別のXDW文書に出力します。
ページを省略した場合はページの繰り返し処理の現在のページが対象となります。従って、ページの繰り返し処理の中に記述してください。
ページを指定する場合は、第1引数に「#Page」(FORMAT2)を指定します。
出力ファイル既存時の挙動は、以下が指定できます。省略すると「MergeBottom」を指定したことになります。
| MergeBottom [既定値] | ページを文書の末尾に束ねる。 |
|---|---|
| MergeTop | ページを文書の先頭に束ねる。 |
| SeqNo | ファイル名の末尾に連番を付与する。(例 Test.xdw -> Test_0001.xdw) |
| Overwrite | ファイルを上書きする。 |
属性のコピーは「CopyAttribute」を指定すると出力ファイルに属性がコピーされます。「Nothing」を指定すると属性はコピーされません。省略すると「CopyAttribute」を指定したことになります。
新規ファイル、既存ファイルともに、「CopyAttribute」を指定するとユーザー属性のみコピーされます。サマリーはコピーされません。サマリーをコピーしたい場合は、DW_COPY_ATTRIBUTEマクロを使ってください。
{%DW_EXTRACT_PAGE(#Page,XDW文書オープン1,1,C:\Home\Temp\out.xdw)}
XDW文書オープン処理名で指定したオープン中のDocuWorks文書がバインダー、又は入れ物の場合に、ファイル内ファイルをフォルダに展開した際のフォルダパスを取得します。
本マクロはDocuWorks文書オープン処理後に使用できます。
DocuWorks文書オープン処理でオープンしたファイルがバインダー、又は入れ物の場合は、ファイルオープン時に一時フォルダにファイル内のファイルを展開します。その一時フォルダのパスを取得できます。
一時フォルダの例 C:\Users\ユーザー名\AppData\Roaming\TechnoStyle\eDocArrangement2\temp\docuworks_class\documentsInBinder~1f2c~7~0
{%DW_GET_TEMP_FOLDER_FOR_EXTRACTION(XBD文書オープン1)}
XDW文書オープン処理名で指定したオープン中のDocuWorks文書がバインダー、又は入れ物の場合に、展開した一時ファイルのファイル名から、ファイル内のファイル名を取得します。
本マクロはDocuWorks文書オープン処理後に使用できます。(「 文書またはオリジナルデータを展開する」 にチェックをいれてください。)
DocuWorks文書オープン処理でオープンしたファイルがバインダー、又は入れ物の場合は、ファイルオープン時に一時フォルダにファイル内のファイルを展開します。その展開されたファイルが同名になる場合は連番が付与されます。文書内の元のファイル名を取得するために本マクロを使用します。
一時フォルダに展開されたファイルの例 注文書.xdw 注文書_0001.xdw
{%DW_GET_FILENAME_INSIDE_FROM_TEMP_FILENAME(XBD文書オープン1,{%GET(FileName)})}
結果
展開されたファイル名が「注文書_0001.xdw」の場合、「注文書.xdw」が取得されます。
XDW文書オープン処理名で指定したオープン中のDocuWorks文書がバインダー、又は入れ物の場合に、文書内ファイル番号から、展開した一時ファイルのフルパスファイル名を取得します。
本マクロはDocuWorks文書オープン処理後に使用できます。(「 文書またはオリジナルデータを展開する」 にチェックをいれてください。)
一時フォルダに展開されたファイルの例 注文書.xdw 注文書_0001.xdw
{%DW_GET_TEMP_FILENAME_BY_NUMBER(XBD文書オープン1,2)}
結果
2番目に展開されたファイル名「注文書_0001.xdw」のフルパスファイル名が取得されます。
#バインダ内の格納順に連番を付与する
#バインダ情報を取得
{%DW_DOCUMENT_INFO_IN_BINDER({%DW_GET(OpenName)},DocInfo)}
{%LOOP L1 {%GET_USER_DATA_KEY_COUNT(DocInfo)}(
#元ファイル
{%SET_U(wk,fromFile,{%DW_GET_TEMP_FILENAME_BY_NUMBER({%DW_GET(OpenName)},[L_IDX(L1)])})}
#リネーム後ファイル(ファイル名の先頭に連番を付与する)
{%SET_U(wk,toFile,{%DW_GET_TEMP_FOLDER_FOR_EXTRACTION({%DW_GET(OpenName)})}\{%FORMAT([L_IDX(L1)],0000)}_{%GET_FILE_NAME({%DW_GET_TEMP_FILENAME_BY_NUMBER({%DW_GET(OpenName)},[L_IDX(L1)])})})}
#リネーム
{%MOVE_FILE({%GET_U(wk,fromFile)},{%GET_U(wk,toFile)},,File,Move)}
)}
XDW文書オープン処理名で指定したオープン中のDocuWorks文書がバインダー、又は入れ物の場合に、文書内ファイル番号から、文書内ファイルのファイル名を取得します。
本マクロはDocuWorks文書オープン処理後に使用できます。(「 文書またはオリジナルデータを展開する」 にチェックをいれてください。)
文書内ファイルの例 注文書.xdw 請求書.xdw
{%DW_GET_FILENAME_INSIDE_BY_NUMBER(XBD文書オープン1,2)}
結果
2番目のファイル名「請求書.xdw」が取得されます。
ページのサムネイル画像を出力します。ページを省略した場合はページの繰り返し処理の現在のページが対象となります。出力ファイルパスに含まれるフォルダが存在しない場合はエラーとなります。また、出力先に既に同名のファイルが存在する場合はエラーとなります。
出力ファイルパスで指定したファイルの拡張子によって画像形式が変わります。指定可能な拡張子はbmp,jpg,png,tiff,gifです。
本マクロはXDW文書のページの繰り返し処理の中のマクロ実行に記述してください。 (ページを省略した場合)
ページを指定する場合は、第1引数に「#Page」(FORMAT2)を指定します。
{%DW_THUMBNAIL_IMAGE(XDW文書オープン1,{%GET(FolderPath)}\{%GET(FileNameWithoutExtension)}{%DW_GET(PageLoopCount)}.jpg)}
{%DW_THUMBNAIL_IMAGE(#Page,XDW文書オープン1,1,{%GET(FolderPath)}\{%GET(FileNameWithoutExtension)}.jpg)}
ページをTiff画像に変換出力します。ページを省略した場合はページの繰り返し処理の現在のページが対象となります。出力ファイルパスに含まれるフォルダが存在しない場合はエラーとなります。また、出力先に既に同名のファイルが存在する場合はエラーとなります。
本マクロはXDW文書のページの繰り返し処理の中のマクロ実行に記述してください。 (ページを省略した場合)
ページを指定する場合は、第1引数に「#Page」(FORMAT2)を指定します。
終了ページは空文字を指定すると最終ページとなります。
解像度は10~600dpiの範囲で指定できます。通常200か300を指定します。
指定可能な色はMono,Color,MonoHighQualityです。
指定可能な圧縮タイプはNoCompress,PackBits,Jpeg,G4です。
色をColorにしてA0やA0長尺の文書を変換するとdpiの値によりエラーが発生します。
これはDocuWorksの機能の限界で変換ができません。
A0 カラーは400dpiまで変換可能で、A0 長尺カラーは300dpiまで変換可能です。
{%DW_OUTPUT_TIFF_IMAGE(XDW文書オープン1,{%GET(FolderPath)}\{%GET(FileNameWithoutExtension)}{%DW_GET(PageLoopCount)}.tif,300,Color,{%DW_GET(PageLoopCount)},PackBits)}
{%DW_OUTPUT_TIFF_IMAGE(#Page,XDW文書オープン1,{%GET(FolderPath)}\{%GET(FileNameWithoutExtension)}.tif,300,Color,1,,PackBits)}
ページをJpeg画像に変換出力します。ページを省略した場合はページの繰り返し処理の現在のページが対象となります。出力ファイルパスに含まれるフォルダが存在しない場合はエラーとなります。また、出力先に既に同名のファイルが存在する場合はエラーとなります。
本マクロはXDW文書のページの繰り返し処理の中のマクロ実行に記述してください。 (ページを省略した場合)
ページを指定する場合は、第1引数に「#Page」(FORMAT2)を指定します。
解像度は10~600dpiの範囲で指定できます。通常200か300を指定します。
指定可能な色はMono,Color,MonoHighQualityです。
指定可能な圧縮タイプはNormal,HighQuality,HighCompressです。
色をColorにしてA0やA0長尺の文書を変換するとdpiの値によりエラーが発生します。
これはDocuWorksの機能の限界で変換ができません。
A0 カラーは400dpiまで変換可能で、A0 長尺カラーは300dpiまで変換可能です。
{%DW_OUTPUT_JPEG_IMAGE(XDW文書オープン1,{%GET(FolderPath)}\{%GET(FileNameWithoutExtension)}{%DW_GET(PageLoopCount)}.jpg,300,Color,Normal)}
ページをBmp画像に変換出力します。ページを省略した場合はページの繰り返し処理の現在のページが対象となります。出力ファイルパスに含まれるフォルダが存在しない場合はエラーとなります。また、出力先に既に同名のファイルが存在する場合はエラーとなります。
本マクロはXDW文書のページの繰り返し処理の中のマクロ実行に記述してください。 (ページを省略した場合)
ページを指定する場合は、第1引数に「#Page」(FORMAT2)を指定します。
解像度は10~600dpiの範囲で指定できます。通常200か300を指定します。
指定可能な色はMono,Color,MonoHighQualityです。
色をColorにしてA0やA0長尺の文書を変換するとdpiの値によりエラーが発生します。
これはDocuWorksの機能の限界で変換ができません。
A0 カラーは400dpiまで変換可能で、A0 長尺カラーは300dpiまで変換可能です。
{%DW_OUTPUT_BMP_IMAGE(XDW文書オープン1,{%GET(FolderPath)}\{%GET(FileNameWithoutExtension)}{%DW_GET(PageLoopCount)}.bmp,300,Color)}
ページをイメージPdfに変換出力します。ページを省略した場合はページの繰り返し処理の現在のページが対象となります。出力ファイルパスに含まれるフォルダが存在しない場合はエラーとなります。また、出力先に既に同名のファイルが存在する場合はエラーとなります。
本マクロはXDW文書のページの繰り返し処理の中のマクロ実行に記述してください。 (ページを省略した場合)
ページを指定する場合は、第1引数に「#Page」(FORMAT2)を指定します。
終了ページは空文字を指定すると最終ページとなります。
解像度は10~600dpiの範囲で指定できます。通常200か300を指定します。
指定可能な色はMono,Color,MonoHighQualityです。
指定可能な圧縮タイプはMrcNormal,MrcHighQuality,MrcHighCompress,Normal,HighQuality,HighCompressです。
DocuWorks9.1以降では、Mrcの付く圧縮タイプを指定した場合、Mrcが付かない圧縮タイプを指定したことになります。
色をColorにしてA0やA0長尺の文書を変換するとdpiの値によりエラーが発生します。
これはDocuWorksの機能の限界で変換ができません。
A0 カラーは400dpiまで変換可能で、A0 長尺カラーは300dpiまで変換可能です。
#フォルダ作成とPDFファイルパスをセット
{%SET_U(属性,PDFファイルパス,{%CREATE_FOLDER({%GET_G(PdfFolder)})}\{%GET(FileNameWithoutExtension)}.pdf)}
#同名のファイルがある場合はファイル名の末尾に連番を付与する
{%SET_U(属性,PDFファイルパス,{%GET_SEQUENCE_FILENAME({%GET_U(属性,PDFファイルパス)})})}
#PDF出力
{%DW_OUTPUT_PDF_IMAGE(#Page,{%DW_GET(OpenName)},{%GET_U(属性,PDFファイルパス)},300,Color,1,,Normal)}
#PDFファイルパスをセット
{%SET_U(属性,PDFファイルパス,{%GET(FolderPath)}\{%GET(FileNameWithoutExtension)}{%DW_GET(PageLoopCount)}.pdf)}
#同名ファイルがある場合は削除
{%DELETE_FILE({%GET_U(属性,PDFファイルパス)})}
#PDF出力
{%DW_OUTPUT_PDF_IMAGE({%DW_GET(OpenName)},{%GET_U(属性,PDFファイルパス)},300,Color,{%DW_GET(PageLoopCount)},Normal)}
検索文字列で指定された文字を、指定ページから検索し、見つかった文字の位置と高さと幅を結果返却用ユーザーデータにセットします。検索文字はスペース区切りで複数の文字を指定できます。
""で囲うとスペースを含めたそのままの文字で検索できます。""で囲わない場合に、スペースを検索対象としたい場合は、スペースの直前に\を付けます。\を検索する場合は、\\と記述します。"も特別な意味を持つことになるので、"を検索するときは\"と記述します。
検索対象はアプリケーション文書のテキスト情報、または、イメージ文書をOCR処理した結果のテキスト情報のいずれかとなります。イメージ文書は事前にOCR処理を行う必要があります。 (DocuWorks9以降はイメージ文書をOCR処理した場合は、取得不可となりました。)
大文字小文字同一視、全角半角同一視、ひらがなカタカナ同一視は、0又は1を指定します。1が指定されると、検索時に大文字小文字(全角半角、ひらがなカタカナ)を同一視して検索を行います。
パディング値(mm)を指定すると、見つかった矩形にパディングを付けた状態で座標とサイズをセットする。
結果は複数になる場合があるため、「結果返却用ユーザーデータ名,番号(1~)」のキーでユーザーデータが作成されます。結果の数は、「{%GET_USER_DATA_COUNT(結果返却用ユーザーデータ名)}」で取得できます。
引き数1:結果返却用ユーザーデータ名
引き数2:番号(1~)
1つの見つかった文字が、複数の矩形で構成される場合があります。文字が折り返している場合などは1行目と2行目が別の矩形となり、2つの矩形情報が取得されます。そのため、キー「Rect」に矩形番号(1~)のキーが作成され、矩形毎の座標が取得できるようになっています。
また、複数の矩形を一つにまとめた矩形の情報(MergeRect X, MergeRect Y, MergeRect Width, MergeRect Height)も取得できます。矩形が1つだった場合は、これらの値は矩形の情報(Rect,1)と同じになります。)
| ユーザーデータ名 | キー | キー | キー | キー |
|---|---|---|---|---|
| 検索結果 | 1 | Rect | 1 | X |
| 検索結果 | 1 | Rect | 1 | Y |
| 検索結果 | 1 | Rect | 1 | Width |
| 検索結果 | 1 | Rect | 1 | Height |
| 検索結果 | 1 | Rect | 1 | Status |
| 検索結果 | 1 | Rect | 2 | X |
| 検索結果 | 1 | Rect | 2 | Y |
| 検索結果 | 1 | Rect | 2 | Width |
| 検索結果 | 1 | Rect | 2 | Height |
| 検索結果 | 1 | Rect | 2 | Status |
| 検索結果 | 1 | MergeRect | X | |
| 検索結果 | 1 | MergeRect | Y | |
| 検索結果 | 1 | MergeRect | Width | |
| 検索結果 | 1 | MergeRect | Height | |
| 検索結果 | 1 | MergeRect | Status |
格納されるユーザーデータの内容は以下の通りです。
| キー | 値 |
|---|---|
| X | 見つかった文字のX座標(mm)。 |
| Y | 見つかった文字のY座標(mm)。 |
| Width | 見つかった文字の幅(mm)。 |
| Height | 見つかった文字の高さ(mm)。 |
| Status | 0の場合は文字の座標とサイズ。1の場合はページ全体の座標とサイズ。(矩形情報が取得できなかった場合は1となる。OCRのモジュールによって取得できない場合があるようです。) |
| MergeRect X | 矩形が複数で構成される場合に、一つにまとめた矩形のX座標(mm)。 |
| MergeRect Y | 矩形が複数で構成される場合に、一つにまとめた矩形のY座標(mm)。 |
| MergeRect Width | 矩形が複数で構成される場合に、一つにまとめた矩形の幅(mm)。 |
| MergeRect Height | 矩形が複数で構成される場合に、一つにまとめた矩形の高さ(mm)。 |
| MergeRect Status | RectにセットされるStatusに1つでも1(ページ全体の座標とサイズ)がある場合は、1(ページ全体の座標とサイズ)がセットされます。それ以外は、0(文字の座標とサイズ)がセットされます。 |
{%DW_GET_TEXT_POSITION(XDW文書オープン1,愛知,result,0,0,0,0.5)}
{%WRITE_LOG({%GET_USER_DATA_KEY_COUNT(result)})}
{%LOOP L1 {%GET_USER_DATA_KEY_COUNT(result)}(
{%SET_U(Anno,HorPos,{%GET_U(result,[L_IDX(L1)],MergeRect,X)})}
{%SET_U(Anno,VerPos,{%GET_U(result,[L_IDX(L1)],MergeRect,Y)})}
{%SET_U(Anno,Width,{%GET_U(result,[L_IDX(L1)],MergeRect,Width)})}
{%SET_U(Anno,Height,{%GET_U(result,[L_IDX(L1)],MergeRect,Height)})}
{%SET_U(Anno,BorderStyle,しない)}
{%SET_U(Anno,FillStyle,する)}
{%SET_U(Anno,FillColor,黄)}
{%SET_U(Anno,FillTransparent,する)}
{%DW_PASTE_RECT_ANNOTATION(XDW文書オープン1,Anno)}
)}
{%DW_GET_TEXT_POSITION(XDW文書オープン1,愛知,result,0,0,0,0.5)}
{%WRITE_LOG({%GET_USER_DATA_KEY_COUNT(result)})}
{%LOOP L1 {%GET_USER_DATA_KEY_COUNT(result)}(
{%LOOP L2 {%GET_USER_DATA_KEY_COUNT(result,[L_IDX(L1)],Rect)}(
{%SET_U(Anno,HorPos,{%GET_U(result,[L_IDX(L1)],Rect,[L_IDX(L2)],X)})}
{%SET_U(Anno,VerPos,{%GET_U(result,[L_IDX(L1)],Rect,[L_IDX(L2)],Y)})}
{%SET_U(Anno,Width,{%GET_U(result,[L_IDX(L1)],Rect,[L_IDX(L2)],Width)})}
{%SET_U(Anno,Height,{%GET_U(result,[L_IDX(L1)],Rect,[L_IDX(L2)],Height)})}
{%SET_U(Anno,BorderStyle,しない)}
{%SET_U(Anno,FillStyle,する)}
{%SET_U(Anno,FillColor,黄)}
{%SET_U(Anno,FillTransparent,する)}
{%DW_PASTE_RECT_ANNOTATION(XDW文書オープン1,Anno)}
)}
)}
XBDバインダーファイル名に指定されたXBDバインダーファイルを新規作成します。
新規作成時にXDW文書ファイルを追加することもできます。ユーザーデータにファイルリストをセットして、追加XDW文書ファイルリストユーザーデータ名を指定すると追加できます。
ユーザーデータにセットするファイルパスの末尾に|を追加して続けて文書名を指定すると、バインダーに追加されるファイルの文書名を変更することができます。
以下の例では、「文書1.xdw」をバインダーに追加して、追加したXDW文書の名前を「文書_20230318」のように日付を含んだ文書名に変更します。(変更後の文書名に拡張子は不要です。)
{%ADD_USER_DATA(FileList,C:\Home\Test\文書1.xdw|文書_{%DATE(yyyyMMdd)})}
|はエスケープ文字なので、直後にマクロやカンマを書く場合は|を2つ並べて書く必要があります。
{%ADD_USER_DATA(FileList,C:\Home\Test\文書1.xdw||{%DATE(yyyyMMdd)})}
ページサイズと色に規定値以外の値が指定されている場合は、デフォルト値(ページサイズ:ページ最大サイズ,色:青)でバインダーが作成されます。
XBDバインダーファイル名に指定されたXBDバインダーファイルが既に存在する場合はエラーになります。
{%DW_CREATE_BINDER(C:\Home\Test\バインダー.xbd,ページサイズ最大,紺)}
{%ADD_USER_DATA(FileList,C:\Home\Test\文書1.xdw)}
{%ADD_USER_DATA(FileList,C:\Home\Test\文書2.xdw)}
{%DW_CREATE_BINDER(C:\Home\Test\バインダー.xbd,ページサイズ最大,紺,FileList)}
XBDバインダーファイル名に指定されたXBDバインダーファイルをオープンし、ユーザーデータに格納されたXDW文書ファイルを追加します。
ユーザーデータにセットするファイルパスの末尾に|を追加して続けて文書名を指定すると、バインダーに追加されるファイルの文書名を変更することができます。
以下の例では、「文書1.xdw」をバインダーに追加して、追加したXDW文書の名前を「文書_20230318」のように日付を含んだ文書名に変更します。(変更後の文書名に拡張子は不要です。)
{%ADD_USER_DATA(FileList,C:\Home\Test\文書1.xdw|文書_{%DATE(yyyyMMdd)})}
|はエスケープ文字なので、直後にマクロやカンマを書く場合は|を2つ並べて書く必要があります。
{%ADD_USER_DATA(FileList,C:\Home\Test\文書1.xdw||{%DATE(yyyyMMdd)})}
追加位置は先頭か末尾を指定できます。
ページサイズと色は省略可能です。指定したXBDバインダーファイルが存在しない場合は新規作成を行いますが、その場合にページサイズと色を参照して作成します。
XBDバインダーファイルを新規作成する場合に、ページサイズと色が省略されたり、規定値以外の値が指定されている場合は、デフォルト値(ページサイズ:ページ最大サイズ,色:青)でバインダーが作成されます。
{%ADD_USER_DATA(FileList,C:\Home\Test\文書1.xdw)}
{%ADD_USER_DATA(FileList,C:\Home\Test\文書2.xdw)}
{%DW_INSERT_DOCUMENT_TO_BINDER(C:\Home\Test\バインダー.xbd,FileList,末尾)}
XBDバインダーファイル名に指定されたXBDバインダーファイルをオープンし、格納されているXDW文書ファイルを番号指定で削除します。
削除したいXDW文書ファイルの番号はユーザーデータを使って指定します。
XBDバインダーファイル名に指定されたXBDバインダーファイルが存在しない場合はエラーになります。
バインダー内に存在しないファイル番号を指定した場合は無視されます。また、同じ番号を2つ以上指定しても1つだけ処理します。
{%ADD_USER_DATA(NumberList,1)}
{%ADD_USER_DATA(NumberList,4)}
{%DW_DELETE_DOCUMENT_IN_BINDER(C:\Home\Test\バインダー.xbd,NumberList)}
XBDバインダーファイル名に指定されたXBDバインダーファイルのサイズ、及び色を設定します。
出力XBDバインダーファイル名は省略可能で、省略した場合は対象のXBDバインダーファイルを更新します。
ページサイズ、色に空文字を指定すると、対象のXBDバインダーファイルの情報を継承します。
出力XBDバインダーファイル名のパスに含まれるフォルダが存在しない場合は自動で作成します。また、出力先に既に同名のファイルが存在する場合はエラーとなります。
本マクロはXDW文書がクローズされた状態で実行してください。
このマクロは内部でバインダーを新規作成して、対象のバインダー内の文書を移す処理を行っています。また、バインダーの文書属性のコピーも行っています。DocuWorksAPIでバインダー情報を変更することができないため、このような処理で実装しています。
{%DW_SET_BINDER_INFO(C:\Home\Test\バインダー.xbd,,赤)}
{%DW_SET_BINDER_INFO(C:\Home\Test\バインダー.xbd,A3横,赤)}
{%DW_SET_BINDER_INFO(C:\Home\Test\バインダー.xbd,A3横,,C:\Home\Test\New_バインダー.xbd)}
対象ファイルで指定したDocuWorks文書にセキュリティを設定します。
オプションには以下のデータをセットしたユーザーデータ名を指定します。
| ProtectType | 保護方式を次のいずれかで指定します。(PSWD56|PSWD128|PSWD256) |
|---|---|
| Permission | 認可情報を次の中から指定します。複数指定可能で、複数指定する場合は|で区切って指定します。(文書の編集|アノテーションの編集|印刷|転記) |
| OpenPassword |
開くパスワード(255文字以内)を暗号化したファイルを指定します。暗号化したファイルを作成するには、メイン画面のメニューのツールの 暗号ファイル作成ツール を使用します。 パスワードに使用できる文字は半角の英数記号で、大・小文字は区別されます。 省略した場合は、開く時にパスワードを要求されません。 |
| FullAccessPassword |
フルアクセスパスワード(255文字以内)を暗号化したファイルを指定します。暗号化したファイルを作成するには、メイン画面のメニューのツールの 暗号ファイル作成ツール を使用します。 パスワードに使用できる文字は半角の英数記号で、大・小文字は区別されます。 省略した場合は、フルアクセスモードになる際のパスワードを要求されません。 |
| Comment | パスワード入力時のコメントを指定します。省略可能です。 |
本マクロはXDW文書がクローズされた状態で実行してください。
{%SET_U(PD_OPTION,ProtectType,PSWD256)}
{%SET_U(PD_OPTION,Permission,文書の編集|アノテーションの編集|印刷|転記)}
{%SET_U(PD_OPTION,OpenPassword,C:\Home\OpenPassword.dat)}
{%SET_U(PD_OPTION,FullAccessPassword,C:\Home\FullAccessPassword.dat)}
{%SET_U(PD_OPTION,Comment,)}
{%DW_PROTECT_DOCUMENT({%GET(FullPathFileName)},PD_OPTION)}
XDW文書オープン処理名で指定されたDocuWorks文書の現在のページの署名数を取得します。
ページを指定する場合は、第1引数に「#Page」(FORMAT2)を指定します。
{%DW_SIGNATURE_COUNT(XDW文書オープン1)}
XDW文書オープン処理名で指定されたDocuWorks文書の現在のページの署名情報を取得します。結果は引き数で指定したユーザーデータに格納されます。
ページを指定する場合は、第1引数に「#Page」(FORMAT2)を指定します。
ユーザーデータに格納される内容は以下の通りです。
対象の署名が電子印鑑の時は Info と StampInfo が設定されます。
対象の署名が電子証明書の時は Info と PkiInfo が設定されます。
DocuWorks電子印鑑ケースツールにより電子印鑑ケースが開かれていて、その電子印鑑ケースに「自分の電子印鑑」が含まれているか、「信頼済みの電子印鑑」に登録されているという条件を満たさない場合は、電子印鑑が未登録という状態となります。
| 第2キー | 名前 | 内容 |
|---|---|---|
| Info | SignatureType |
署名タイプ。次の何れか。
DocuWorks電子印鑑 電子証明書SHA1 電子証明書SHA256 |
| Info | Page | 署名の貼られているページ。バインダーの場合は通し番号。 |
| Info | HorPos | 署名の左上のX座標。 |
| Info | VerPos | 署名の左上のY座標。 |
| Info | Width | 署名の幅。 |
| Info | Height | 署名の高さ。 |
| Info | SignedTime | 署名の日時。(yyyy/MM/dd HH:mm:ss) |
| 第2キー | 名前 | 内容 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| StampInfo | StampName | 署名に使われた電子印鑑の印鑑名。 | ||||||||||
| StampInfo | OwnerName | 署名に使われた電子印鑑の所有者名。 | ||||||||||
| StampInfo | ValidDate | 署名に使われた電子印鑑の有効期限。(yyyy/MM/dd HH:mm:ss) | ||||||||||
| StampInfo | Remarks | 署名に使われた電子印鑑の備考。 | ||||||||||
| StampInfo | DocVerificationStatus |
DocuWorksファイルデータの整合性の検証結果。次の何れか。
未検証 検証済み_未編集 検証済み_編集あり 検証済み_異常 |
||||||||||
| StampInfo | DocVerificationStatusMessage |
DocVerificationStatus に対応するメッセージ。
|
||||||||||
| StampInfo | StampVerificationStatus |
署名に使われた電子印鑑の信頼性の検証結果。次の何れか。
未検証 検証済み_電子印鑑登録済み 検証済み_電子印鑑未登録 |
||||||||||
| StampInfo | StampVerificationStatusMessage |
StampVerificationStatus に対応するメッセージ。
|
| 第2キー | 名前 | 内容 | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PkiInfo | Module | 署名を行ったモジュール名。 | ||||||||||||||||||||||||
| PkiInfo | SubjectDN | 署名者の証明書のSubjectのDN。 | ||||||||||||||||||||||||
| PkiInfo | Subject | 基本的には署名者の証明書のSubjectのCNが返される。CNがない場合はCN→OU→O→Eの順に内容を返す。 | ||||||||||||||||||||||||
| PkiInfo | IssuerDN | 署名者の証明書のIssuerのDN。 | ||||||||||||||||||||||||
| PkiInfo | Issuer | 基本的には署名者の証明書のIssuerのCNが返される。CNがない場合はCN→OU→O→Eの順に内容を返す。 | ||||||||||||||||||||||||
| PkiInfo | NotBefore | 署名者の証明書の有効期限。(yyyy/MM/dd HH:mm:ss) | ||||||||||||||||||||||||
| PkiInfo | NotAfter | 署名者の証明書の有効期限の終了日時。(yyyy/MM/dd HH:mm:ss) | ||||||||||||||||||||||||
| PkiInfo | Serial | 署名者の証明書のシリアル番号を16進数で返す。 | ||||||||||||||||||||||||
| PkiInfo | SignerCert | 署名者の証明書データ。バイトデータを16進数ダンプにした文字列。 | ||||||||||||||||||||||||
| PkiInfo | Remarks | 署名の備考。 | ||||||||||||||||||||||||
| PkiInfo | SigningTime | 署名を行った時刻。(yyyy/MM/dd HH:mm:ss) | ||||||||||||||||||||||||
| PkiInfo | DocVerificationStatus |
署名文書の検証結果。次の何れか。
未検証 検証済み_未編集_信頼未確認 検証済み_編集あり_信頼未確認 異常 検証済み_未編集_信頼確認 検証済み_編集あり_信頼確認 |
||||||||||||||||||||||||
| PkiInfo | DocVerificationStatusMessage |
DocVerificationStatus に対応するメッセージ。
|
||||||||||||||||||||||||
| PkiInfo | CertVerificationType |
証明書の検証結果を参照して証明書の検証をしていた場合はDWCertの持つ検証レベルを取得して証明書の検証方法を返す。証明書の検証をしていなかった場合はレジストリにある検証レベルを取得して証明書の検証方法を返す。
次の何れか。 信頼レベル低 信頼レベル中_ローカル失効確認 信頼レベル中_オンライン失効確認 信頼レベル高_ローカル失効確認 信頼レベル高_オンライン失効確認 |
||||||||||||||||||||||||
| PkiInfo | CertVerificationTypeMessage |
CertVerificationType に対応するメッセージ。
|
||||||||||||||||||||||||
| PkiInfo | CertVerificationStatus |
証明書の検証結果。次の何れか。
未検証 有効 ルート証明書不明 失効確認不可 有効期限外 有効期限不正 破棄済み 中間証明書破棄済み 署名不正 キー使用方法不正 未定義エラー |
||||||||||||||||||||||||
| PkiInfo | CertVerificationStatusMessage |
CertVerificationStatus に対応するメッセージ。
|
{%DW_SIGNATURE_INFO(XDW文書オープン1,1,Signature)}
{%WRITE_LOG(SignatureType:{%GET_U(Signature,Info,SignatureType)})}
{%WRITE_LOG(Page:{%GET_U(Signature,Info,Page)})}
{%WRITE_LOG(HorPos:{%GET_U(Signature,Info,HorPos)})}
{%WRITE_LOG(VerPos:{%GET_U(Signature,Info,VerPos)})}
{%WRITE_LOG(Width:{%GET_U(Signature,Info,Width)})}
{%WRITE_LOG(Height:{%GET_U(Signature,Info,Height)})}
{%WRITE_LOG(SignedTime:{%GET_U(Signature,Info,SignedTime)})}
{%IF({%GET_U(Signature,Info,SignatureType)}=DocuWorks電子印鑑,
{%WRITE_LOG(StampName:{%GET_U(Signature,StampInfo,StampName)})}
{%WRITE_LOG(OwnerName:{%GET_U(Signature,StampInfo,OwnerName)})}
{%WRITE_LOG(ValidDate:{%GET_U(Signature,StampInfo,ValidDate)})}
{%WRITE_LOG(Remarks:{%GET_U(Signature,StampInfo,Remarks)})}
{%WRITE_LOG(DocVerificationStatus:{%GET_U(Signature,StampInfo,DocVerificationStatus)})}
{%WRITE_LOG(DocVerificationStatusMessage:{%GET_U(Signature,StampInfo,DocVerificationStatusMessage)})}
{%WRITE_LOG(StampVerificationStatus:{%GET_U(Signature,StampInfo,StampVerificationStatus)})}
{%WRITE_LOG(StampVerificationStatusMessage:{%GET_U(Signature,StampInfo,StampVerificationStatusMessage)})}
,
{%WRITE_LOG(Module:{%GET_U(Signature,PkiInfo,Module)})}
{%WRITE_LOG(SubjectDN:{%GET_U(Signature,PkiInfo,SubjectDN)})}
{%WRITE_LOG(Subject:{%GET_U(Signature,PkiInfo,Subject)})}
{%WRITE_LOG(IssuerDN:{%GET_U(Signature,PkiInfo,IssuerDN)})}
{%WRITE_LOG(Issuer:{%GET_U(Signature,PkiInfo,Issuer)})}
{%WRITE_LOG(NotBefore:{%GET_U(Signature,PkiInfo,NotBefore)})}
{%WRITE_LOG(NotAfter:{%GET_U(Signature,PkiInfo,NotAfter)})}
{%WRITE_LOG(Serial:{%GET_U(Signature,PkiInfo,Serial)})}
{%WRITE_LOG(SignerCert:{%GET_U(Signature,PkiInfo,SignerCert)})}
{%WRITE_LOG(Remarks:{%GET_U(Signature,PkiInfo,Remarks)})}
{%WRITE_LOG(SigningTime:{%GET_U(Signature,PkiInfo,SigningTime)})}
{%WRITE_LOG(DocVerificationStatus:{%GET_U(Signature,PkiInfo,DocVerificationStatus)})}
{%WRITE_LOG(DocVerificationStatusMessage:{%GET_U(Signature,PkiInfo,DocVerificationStatusMessage)})}
{%WRITE_LOG(CertVerificationType:{%GET_U(Signature,PkiInfo,CertVerificationType)})}
{%WRITE_LOG(CertVerificationTypeMessage:{%GET_U(Signature,PkiInfo,CertVerificationTypeMessage)})}
{%WRITE_LOG(CertVerificationStatus:{%GET_U(Signature,PkiInfo,CertVerificationStatus)})}
{%WRITE_LOG(CertVerificationStatusMessage:{%GET_U(Signature,PkiInfo,CertVerificationStatusMessage)})}
)}
XDW文書オープン処理名で指定されたDocuWorks文書の現在のページから指定された署名Noの署名の状態を更新します。
ページを指定する場合は、第1引数に「#Page」(FORMAT2)を指定します。
{%DW_UPDATE_SIGNATURE_STATUS(XDW文書オープン1,1)}
XDW文書ファイル名に指定されたXDW文書の指定ページに電子印鑑を使って署名を行います。
DocuWorks電子印鑑ケースツールにより電子印鑑ケースが開かれていて、その電子印鑑ケースに「自分の電子印鑑」が含まれている必要があります。
署名に使用される電子印鑑は「自分の電子印鑑」の1つ目です。(複数の電子印鑑がある場合、2つ目以降の電子印鑑を指定する事はできません)
戻り値に署名Noが返却されます。(署名Noはページ毎の番号になっています。)
バインダーに署名を行った場合は、バインダーをばらしたり、文書を束ねたりできなくなります。また、署名を行った文書はバインダーに束ねる事はできません。
本マクロは、XDW文書がクローズされた状態で実行してください。
{%DW_SIGN_DOCUMENT_WITH_STAMP(C:\Test.xdw,1,20,10)}