DWアノテーション取得は、指定ページのアノテーションを検索してアノテーションリストを作成します。子ノードに、XDW文書のアノテーションの繰り返し処理を追加する事で、アノテーションに対して繰り返し処理を行うことができます。

オープン処理

XDW文書オープン処理を選択します。最後にオープンされたオープン処理名を返すマクロ「{%DW_GET(OpenName)}」がデフォルト表示されます。

ページ

アノテーションを取得するページを入力します。XDW文書のページの繰り返しの中で「{%DW_GET(PageLoopCount)}」と記述すると現在のページを指定できます。

種類

アノテーションの種類を指定します。

対象

アノテーションは階層構造で貼り付けできるようになっており、どの階層のアノテーションを対象にするかを以下から指定します。

ページ直下

ページに直接貼り付けられているアノテーションを対象にします。

付箋上

ページ直下の付箋の上に貼り付けられているアノテーションを対象にします。付箋上であれば、グループ内、カスタムアノテーション上のアノテーションも対象にします。

グループ内

ページ直下のグループ内に貼り付けられているアノテーションを対象にします。

カスタム上

ページ直下のカスタムアノテーションの上に貼り付けられているアノテーションを対象にします。

アノテーションの階層と取得対象となるアノテーションについて

DocuWorksで貼り付けできるアノテーションの階層のパターンは以下の様になっています。

  1. ページ > 取得アノテーション

  2. ページ > グループ > 取得アノテーション

  3. ページ > グループ > カスタム > 取得アノテーション

  4. ページ > グループ > カスタム > グループ > 取得アノテーション

  5. ページ > カスタム > 取得アノテーション

  6. ページ > カスタム > グループ > 取得アノテーション

  7. ページ > 付箋 > 取得アノテーション

  8. ページ > 付箋 > グループ > 取得アノテーション

  9. ページ > 付箋 > グループ > カスタム > 取得アノテーション

  10. ページ > 付箋 > グループ > カスタム > グループ > 取得アノテーション

  11. ページ > 付箋 > カスタム > 取得アノテーション

  12. ページ > 付箋 > カスタム > グループ > 取得アノテーション

上記のパターンと対象の指定の対応は以下の通りです。

ページ直下

1

付箋上

7~12

グループ内

2~4

カスタム上

5,6

条件

属性条件を指定する

チェックすると属性に対しての検索条件を設定する事ができます。

属性

アノテーションの属性を指定します。指定されたアノテーションの種類に対応した属性の中から選択できます。

比較式

指定された属性と値を比較する演算子を指定します。

属性の内容によって選択できる項目が変わります。比較式以外では正規表現が使用できます。正規表現は以下の2種類あります。

正規表現

正規表現でマッチングを行います。

正規表現(GM)

正規表現でグローバルマッチを行います。正規表現にマッチするすべてのパターンを検出します。

値

指定された属性と比較する値を指定します。

比較式に正規表現を指定した場合は、値にキャプチャ記号()を記述することで、()の中の文字を簡単に取得できるようになります。

値にキャプチャ記号()がある場合、取得結果の基本属性「 CapturedTexts 」に結果が格納されます。

条件

複数の条件を登録した場合に有効となります。直前の条件とのANDまたはORを指定します。

2つ目以降の条件に対して適用されます。(1つ目の条件の論理式は無視されます。)

削除

選択された条件を削除します。

上へ

選択された条件を上へ移動します。

下へ

選択された条件を下へ移動します。

追加ボタン

属性、比較式、値等の入力後、追加ボタンを押すと条件リストに追加されます。

条件はリストに追加しないと正常に動作しません。変更時の操作では追加ボタンの押し忘れや、変更前の条件の削除のし忘れに注意してください。

ページ分割

分割マークをつける

チェックすると文字を検出したページをメモリに記憶します。ページ分割はファイル移動・コピー処理で行うことができます。

ファイル移動・コピーで分割するには、1ページ目に分割マークが必要です。1ページ目に該当するアノテーションが無い文書は、ファイル移動の「分割マークのある頁で分割する」の説明のように、1ページ目にも分割マークを付けてください。

分割データ

ファイル移動・コピー処理で、分割を行う際に取得できるデータを指定します。

例えば、「{%GET_U(DWアノテーション取得1,1,Text)}」と記述しておけば、ページ分割を行った際に、分割後のファイル名に取得した文字を使用することができるようになります。

検索したアノテーション属性の取得方法

検索にマッチしたアノテーションの属性値はユーザーデータに格納されます。

アノテーションはページ内に複数見つかる可能性があるので、ユーザーデータにはアノテーション毎にデータがセットされます。ユーザーデータにセットする内容は以下の通りです。(属性はアノテーションのタイプによって変化します。)

引数1:DWアノテーション取得処理名

引数2:アノテーション番号

引数3:属性名

テキストアノテーションの文字列を取得する場合

{%GET_U(DWアノテーション取得1,1,Text)}

基本の属性

以下の属性はすべてのアノテーションで取得できます。

属性名

値

AnnotationType

アノテーションのタイプ。以下の何れか。

付箋
テキスト
日付印
直線
矩形
楕円
マーカー
リンク
OLE
ビットマップ
多角形
タイトル
カスタム
グループ

マーカーはフリーハンドも含みます。

AnnotationKey

アノテーションキー。マクロなどでアノテーションを指定する際に使用します。

ChildAnnotationCount

アノテーションに貼られている子アノテーションの数。

HorPosPageBased

アノテーションの水平方向の位置(X座標)。小数点第2位まで有効。グループや付箋などのコンテナ上のアノテーションの場合でも、ページの左上を基準とした座標となります。
単位 : mm

VerPosPageBased

アノテーションの垂直方向の位置(Y座標)。小数点第2位まで有効。グループや付箋などのコンテナ上のアノテーションの場合でも、ページの左上を基準とした座標となります。
単位 : mm

HorPos

アノテーションの水平方向の位置(X座標)。小数点第2位まで有効。グループや付箋などのコンテナ上のアノテーションの場合に、親アノテーションの左上を基準とした座標となります。
単位 : mm 範囲 : -2400~2400

VerPos

アノテーションの垂直方向の位置(Y座標)。小数点第2位まで有効。グループや付箋などのコンテナ上のアノテーションの場合に、親アノテーションの左上を基準とした座標となります。
単位 : mm 範囲 : -2400~2400

Width

アノテーションの幅。小数点第2位まで有効。
単位 : mm 範囲: 5~50
DocuWorksの問題で、取得した値に誤差が生じる。DocuWorks7では0.02mm、DocuWorks8では0.15mmほど増加した値が取得される。DocuWorks8.0.3で修正された。

Height

アノテーションの高さ。小数点第2位まで有効。
単位 : mm 範囲: 5~50
DocuWorksの問題で、取得した値に誤差が生じる。DocuWorks7では0.02mm、DocuWorks8では0.15mmほど増加した値が取得される。DocuWorks8.0.3で修正された。

ParentAnnotationKey

親アノテーションキー。マクロなどでアノテーションを指定する際に使用します。

付箋上のテキストを検索した場合に付箋アノテーションのアノテーションキーを取得したい場合などに使用します。

親アノテーションがない場合は空文字列がセットされます。

CapturedTexts

属性条件に正規表現を使用した場合に、正規表現中にキャプチャ()を記述した場合、()内の文字がユーザーデータから取得できます。
CapturedTextsの後ろの引き数は、属性条件番号(正規表現を使用した条件)、キャプチャ番号となっています。

アノテーション

番号:123

属性条件

テキスト 正規表現 番号:(.+)

取得例

#DWアノテーション取得名,マッチしたアノテーションのアノテーション番号,CapturedTexts,条件番号,キャプチャ番号
{%WRITE_LOG("{%GET_U(DWアノテーション取得1,1,CapturedTexts,1,1)}")}

結果

"123"

アノテーション

担当:伊藤 博文

属性条件

テキスト 正規表現 担当:(.+)\s+(.+)

取得例

#DWアノテーション取得名,マッチしたアノテーションのアノテーション番号,CapturedTexts,条件番号,キャプチャ番号
{%WRITE_LOG("{%GET_U(DWアノテーション取得1,1,CapturedTexts,1,1)}")}
{%WRITE_LOG("{%GET_U(DWアノテーション取得1,1,CapturedTexts,1,2)}")}

結果

"伊藤"
"博文"

複数条件の場合

以下の様に2つの条件をORで指定することもできますが、格納結果が複雑になります。

条件番号は正規表現を使っている条件のみを対象とします。例えば1番目の条件に正規表現を使わず、2番目に正規表現を使っている場合、2番目の条件のCapturedTextsを取得するには、条件番号に1を指定します。

アノテーション

番号:123
担当:伊藤 博文

属性条件

テキスト 正規表現 番号:(.+)
テキスト 正規表現 担当:(.+)\s+(.+) OR

取得例

#DWアノテーション取得名,マッチしたアノテーションのアノテーション番号,CapturedTexts,条件番号,キャプチャ番号
{%WRITE_LOG("{%GET_U(DWアノテーション取得1,1,CapturedTexts,1,1)}")}
{%WRITE_LOG("{%GET_U(DWアノテーション取得1,1,CapturedTexts,2,1)}")}
{%WRITE_LOG("{%GET_U(DWアノテーション取得1,1,CapturedTexts,2,2)}")}
{%WRITE_LOG("{%GET_U(DWアノテーション取得1,2,CapturedTexts,1,1)}")}
{%WRITE_LOG("{%GET_U(DWアノテーション取得1,2,CapturedTexts,2,1)}")}
{%WRITE_LOG("{%GET_U(DWアノテーション取得1,2,CapturedTexts,2,2)}")}

結果

"123"
""
""
""
"伊藤"
"博文"

グローバルマッチの場合

条件の比較式に正規表現(GM)を使用した場合は、複数のアノテーションにマッチする場合と、そのうちの一つのアノテーション内で複数マッチすることもあります。

複数のアノテーションにマッチした場合は、アノテーション番号の階層が複数になります。

正規表現(グローバルマッチ)「S(\d+)-(\d+)」

アノテーション1
S01-01

アノテーション2
S02-01 S02-02

アノテーション取得1
1 <-アノテーション番号
	Text	S01-01
	CapturedTexts
		1 <-条件番号
			1 <-マッチ番号
				1	01  <-キャプチャ番号と値
				2	01  <-キャプチャ番号と値
2 <-アノテーション番号
	Text	S02-01 S02-02
	CapturedTexts
		1 <-条件番号
			1 <-マッチ番号
				1	02  <-キャプチャ番号と値
				2	01  <-キャプチャ番号と値
			2 <-マッチ番号
				1	02  <-キャプチャ番号と値
				2	02  <-キャプチャ番号と値

アノテーション内で複数マッチした場合は「CapturedTexts,条件番号,マッチ番号,キャプチャ番号」の部分のマッチ番号が複数になります。

アノテーション(一つのアノテーションで複数マッチする場合)

番号:123[改行コード]番号:789

属性条件

テキスト 正規表現(GM) 番号:(.+)

取得例

#DWアノテーション取得名,マッチしたアノテーションのアノテーション番号,CapturedTexts,条件番号,マッチ番号,キャプチャ番号
#見つかったすべての番号をログに出力する
{%LOOP L1 {%GET_USER_DATA_KEY_COUNT(DWアノテーション取得1,1,CapturedTexts,1)}(
  {%WRITE_LOG("{%GET_U(DWアノテーション取得1,1,CapturedTexts,1,[L_IDX(L1)],1)}")}  
)}

結果

"123"
"789"

複数のアノテーション、アノテーション内の複数のキャプチャをすべて表示するマクロは以下のようになります。

{%WRITE_LOG(アノテーション数:{%GET_USER_DATA_KEY_COUNT(DWアノテーション取得1)})}
{%LOOP L1 {%GET_USER_DATA_KEY_COUNT(DWアノテーション取得1)}(
  {%WRITE_LOG(アノテーション[L_IDX(L1)]のキャプチャ数:{%GET_USER_DATA_KEY_COUNT(DWアノテーション取得1,[L_IDX(L1)],CapturedTexts,1)})}
  {%LOOP L2 {%GET_USER_DATA_KEY_COUNT(DWアノテーション取得1,[L_IDX(L1)],CapturedTexts,1)}(
    {%WRITE_LOG("{%GET_U(DWアノテーション取得1,[L_IDX(L1)],CapturedTexts,1,[L_IDX(L2)],1)}")}  
  )}
)}

Attributes

カスタム属性。DWビューアのアノテーションのプロパティから設定可能なユーザー定義の属性です。

Attributesの後ろの引き数は、属性名、Value(値)またはType(型)を指定します。

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

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

新規追加する場合にTypeを指定しなかった場合はString(文字列)で追加されます。

取得例

#DWアノテーション取得名,マッチしたアノテーションのアノテーション番号,Attributes,属性名,Value
{%WRITE_LOG("{%GET_U(DWアノテーション取得1,1,Attributes,社員番号,Value)}")}

#DWアノテーション取得名,マッチしたアノテーションのアノテーション番号,Attributes,属性名,Type
{%WRITE_LOG("{%GET_U(DWアノテーション取得1,1,Attributes,社員番号,Type)}")}

結果

"12345"
"String"

カスタム属性を設定する場合はアノテーション種別ごとの設定マクロで設定できます。

設定例
DWアノテーション取得1で取得した日付印アノテーションのカスタム属性に社員番号をセットする。(アノテーションの繰り返し処理の中でマクロ記述する場合)

{%SET_U(Anno,Attributes,社員番号,Value,1001)}
{%DW_SET_DATESTAMP_ANNOTATION_ATTRIBUTE(DWアノテーション取得1,Anno)}
設定例
DWアノテーション取得1で取得した1番目のテキストアノテーションのカスタム属性に更新日をセットする。

{%SET_U(Anno,Attributes,更新日,Value,{%DATE(yyyy/MM/dd)})}
{%SET_U(Anno,Attributes,更新日,Type,Date)}
{%DW_SET_TEXT_ANNOTATION_ATTRIBUTE(#AnnoNo,DWアノテーション取得1,1,Anno)}

テキストアノテーション(AnnotationTypeがテキストの場合)

属性名

値

Text

文字列。

FontName

フォント名。

FontStyle

フォントスタイル。以下の何れか。

イタリック
ボールド
下線
取り消し線

複数のスタイルを設定されている場合は、「イタリック|下線」のように|で区切られている。

FontStyleItalic

フォントスタイル(イタリック)。以下の何れか。

する
しない

FontStyleBold

フォントスタイル(ボールド)。以下の何れか。

する
しない

FontStyleUnderline

フォントスタイル(下線)。以下の何れか。

する
しない

FontStyleStrikeOut

フォントスタイル(取り消し線)。以下の何れか。

する
しない

FontSize

フォントサイズ。小数点第1位まで有効。
単位 : ポイント

ForeColor

文字の色。
定義済みの場合は以下の何れか。未定義の場合はカラーコード(16進文字列で6文字)。

黒
茶
緑
オリーブ
紺
紫
青緑
灰
銀
赤
黄緑
黄
青
赤紫
水色
白

BackColor

背景色。
定義済みの場合は以下の何れか。(透過の場合は"無し"。色コード010101が割り当てられているので、010101はカラーとして使用不可。) 未定義の場合はカラーコード(16進文字列で6文字)。

無し
黒
茶
緑
オリーブ
紺
紫
青緑
灰
銀
赤
黄緑
黄
青
赤紫
水色
白

WordWrap

文字の折り返し。以下の何れか。

折り返す
折り返さない

TextDirection

文字の方向。以下の何れか。

横書き
縦書き

TextOrientation

文字列の回転角度。時計回りで0~359。

LineSpace

文字列の行間。小数点第2位まで有効。
単位 : 行  範囲: 1~10

TextSpacing

テキストの文字間隔。小数点第1位まで有効。
単位 : ポイント

TextTopMargin

文字の上マージン。0~200の値。小数点第2位まで有効。
単位 : mm

TextLeftMargin

文字の左マージン。0~200の値。小数点第2位まで有効。
単位 : mm

TextBottomMargin

文字の下マージン。0~200の値。小数点第2位まで有効。
単位 : mm

TextRightMargin

文字の右マージン。0~200の値。小数点第2位まで有効。
単位 : mm

TextAutoResizeHeight

高さの自動調整。折り返しを行う場合に有効。以下の何れか。

する
しない

日付印アノテーション(AnnotationTypeが日付印の場合)

属性名

値

BorderColor

線の色。テキストアノテーションのForeColorと同じ。

TopField

上欄のテキスト。1行の長さは12バイトまで。2行まで指定可。

BottomField

下欄のテキスト。1行の長さは12バイトまで。2行まで指定可。

DateStyle

日付設定。以下の何れか。

自動
手動

BasisYearStyle

基準年設定。

する
しない

BasisYear

日付設定の基準年。1~9999。「基準年設定」が「する」の時のみ有効。

DateField_FirstChar

日付欄の先頭1文字。

YearField

日付欄の年。「日付設定」が「手動」の時のみ有効。

MonthField

日付欄の月。「日付設定」が「手動」の時のみ有効。

DayField

日付欄の日。「日付設定」が「手動」の時のみ有効。

DateFormat

日付の書式設定。以下の何れか。「日付設定」が「自動」の時のみ有効。

yy.mm.dd
yy.m.d
dd.mmm.yy
dd.mmm.yyyy

DateOrder

年月日の表示順。以下の何れか。「日付設定」が「手動」の時のみ有効。

年月日
日月年

StampDate

日付印の日付。YearField, MonthField, DayFieldを日付形式(yyyy/MM/dd)にしたもの。
YearField, MonthField, DayField の組み合わせが日付と認識できない時は、DateTime型の初期値(0001/01/01)となる。

リンクアノテーション(AnnotationTypeがリンクの場合)

属性名

値

Caption

リンクボタンのタイトル。

ShowIcon

アイコンの表示。以下の何れか。

する
しない

Invisible

リンクボタンの表示。以下の何れか。

する
しない

AutoResize

自動サイズ調整。以下の何れか。

する
しない

Tooltip

ツールチップの表示。以下の何れか。

する
しない

Tooltip_String

ツールチップ。最大255バイト。

LinkType

リンクの種類。以下の何れか。

このファイル
他のDocuWorksファイル
URL
他のファイル
メールアドレス

Url

URL。最大255バイト。

XdwPath

DocuWorksファイルのパス。最大255バイト。

XdwPath_Relative

DocuWorksファイルのパスのタイプ。以下の何れか。

絶対
相対

XdwLink

リンク先の指定。以下の何れか。

ページ
リンクアノテーション

PageFrom

リンク先ページの指定。以下の何れか。

DocuWorks文書
バインダー通し
内部DocuWorks文書

XdwNameInXbd

リンク先の内部DocuWorksドキュメント名。「リンク先ページの指定」が「内部DocuWorks文書指定」の時のみ有効。

XdwPage

リンク先のDocuWorksファイルのページ番号。バインダーの場合は通しページ番号。

LinkAtn_Title

リンクアノテーションのタイトル。最大255バイト。

OtherFilePath

その他のファイルのパス。最大255バイト。絶対パスに変換した時に255バイト以内である必要がある。「リンクの種類」が「他のファイル」の時のみ有効。

OtherFilePath_Relative

その他のファイルのパスのタイプ。以下の何れか。

絶対
相対

MailAddress

メールアドレス。最大255バイト。

FontName

フォント名。

FontStyleItalic

フォントスタイル(イタリック)。以下の何れか。

する
しない

FontStyleBold

フォントスタイル(ボールド)。以下の何れか。

する
しない

FontStyleUnderline

フォントスタイル(下線)。以下の何れか。

する
しない

FontStyleStrikeOut

フォントスタイル(取り消し線)。以下の何れか。

する
しない

FontSize

フォントサイズ。小数点第1位まで有効。
単位: ポイント

ForeColor

文字色。テキストアノテーションのForeColorと同じ。

付箋アノテーション(AnnotationTypeが付箋の場合)

属性名

値

FillColorFusen

背景色。以下の何れか。未定義の場合はカラーコード(16進文字列で6文字)。

赤
青
黄
緑
淡赤
淡青
淡黄
淡緑
白

AutoResize

自動サイズ調整。以下のいずれか。

する
しない

直線アノテーション(AnnotationTypeが直線の場合)

属性名

値

BorderWidth

線の太さ。1~30の整数。

BorderColor

線の色。テキストアノテーションのForeColorと同じ。

BorderTransparent

線の透過。以下の何れか。

する
しない

ArrowheadType

直線の矢印の種類。以下の何れか。

なし
始点のみ
終点のみ
両方

ArrowheadStyle

直線の矢印のスタイル。

広いかさ
かさ
塗りつぶし

BorderType

線の種類。

実線
点線
破線
一点鎖線
二重線

HorVec

水平移動量。
単位 : mm

VerVec

垂直移動量。
単位 : mm

矩形アノテーション(AnnotationTypeが矩形の場合)

属性名

値

BorderStyle

線の表示。以下の何れか。

する
しない

BorderWidth

線の太さ。1~30の整数。

BorderColor

線の色。テキストアノテーションのForeColorと同じ。

FillStyle

塗りつぶし。以下の何れか。

する
しない

FillColor

塗りつぶしの色。テキストアノテーションのForeColorと同じ。

FillTransparent

塗りつぶしの透過。以下の何れか。

する
しない

楕円アノテーション(AnnotationTypeが楕円の場合)

属性名

値

BorderStyle

線の表示。以下の何れか。

する
しない

BorderWidth

線の太さ。1~30の整数。

BorderColor

線の色。テキストアノテーションのForeColorと同じ。

FillStyle

塗りつぶし。以下の何れか。

する
しない

FillColor

塗りつぶしの色。テキストアノテーションのForeColorと同じ。

FillTransparent

塗りつぶしの透過。以下の何れか。

する
しない

フリーハンド/マーカーアノテーション(AnnotationTypeがマーカーの場合)

属性名

値

BorderColor

線の色。テキストアノテーションのForeColorと同じ。

BorderWidth

線の太さ。1~30の整数。

BorderTransparent

線の透過。以下の何れか。

する
しない

多角形/折れ線アノテーション(AnnotationTypeが多角形の場合)

属性名

値

BorderStyle

線の表示。以下の何れか。

する
しない

BorderWidth

線の太さ。1~30の整数。

BorderColor

線の色。テキストアノテーションのForeColorと同じ。

Close

終端を閉じて多角形にするか、閉じないで折れ線にする。(折れ線はDocuWorks9以降で使用可。) 以下の何れか。

折れ線
多角形

FillStyle

塗りつぶし。以下の何れか。

する
しない

FillColor

塗りつぶしの色。テキストアノテーションのForeColorと同じ。

FillTransparent

塗りつぶしの透過。以下の何れか。

する
しない

ArrowheadType

直線の矢印の種類。以下の何れか。

なし
始点のみ
終点のみ
両方

ArrowheadStyle

直線の矢印のスタイル。

広いかさ
かさ
塗りつぶし