アノテーション読み取り設定

アノテーション読み取り設定は、DocuWorks文書に貼り付けられたアノテーションを読み取る場合に設定を行います。左上の処理名から、「アノテーション読み取り」を選択して、処理追加ボタンを押します。

アノテーション読み取り設定では、下記の項目が設定できます。

対象

対象とするアノテーションの種類を選択します。

テキストを選択した場合、テキストアノテーションの文字がそのまま対象になります。正規表現に「/(.*)/」を指定した場合、{%P_DATA(アノテーション読み取り1.1)}でテキストを取得できます。(正規表現の「.」は改行を含まないので、連結文字を改行にした場合は取得出来ない場合があります。連結文字をタブにしてください。)

日付印を選択した場合は、日付印の情報が以下のタグ付きで取得されます。

対象 タグ
上部テキスト <Top></Top>
下部テキスト <Bottom></Bottom>
日付 <Date></Date>
X座標(1/100mm) <XPosition></XPosition>
Y座標(1/100mm) <YPosition></YPosition>

取得結果の例 (正規表現「 /(.*)/ 」の場合 (連結文字はタブにしてください。))

<Top>管理課</Top><Bottom>山田</Bottom><Date>'07.08.07</Date> <XPosition>100</XPosition><YPosition>200</YPosition>

取得結果の例 (正規表現「 /<Top>(.*?)<\/Top>/ 」の場合)

管理課

矩形を選択した場合は以下の情報がタグ付きで取得されます。

対象 タグ
X座標(1/100mm) <XPosition></XPosition>
Y座標(1/100mm) <YPosition></YPosition>
幅(1/100mm) <Width></Width>
高さ(1/100mm) <Height></Height>
線の表示(1:表示/0:非表示) <BorderStyle></BorderStyle>
線の太さ(ポイント) <BorderWidth></BorderWidth>
線色 <BorderColor></BorderColor>
塗りつぶし(1:する/0:しない) <FillStyle></FillStyle>
塗りつぶしの色 <FillColor></FillColor>
塗りつぶしの透過(1:する/0:しない) <FillTransparent></FillTransparent>

取得結果の例 (正規表現「 /<XPosition>(\d+)<\/XPosition><YPosition>(\d+)<\/YPosition><Width>(\d+)<\/Width><Height>(\d+)<\/Height>/ 」の場合)

{%P_DATA(アノテーション読み取り1.1)}でX座標、{%P_DATA(アノテーション読み取り1.2)}でY座標、{%P_DATA(アノテーション読み取り1.3)}で幅、{%P_DATA(アノテーション読み取り1.4)}で高さが取得できます。

ページ内の複数の矩形を取得する場合は、マッチオールを指定して、正規表現に「/.+/g」を指定します。区切り文字は改行を選択します。その場合、{%P_DATA(アノテーション読み取り1.1)}で1つめの矩形の取得結果、{%P_DATA(アノテーション読み取り1.2)}で2つめの矩形の取得結果が取得できます。

以下のマクロで、全ての矩形のX座標、Y座標をメッセージボックスで表示します。(2行目、4行目はスペースの都合で改行していますが、実際の設定では改行せずに続けて記述してください。)

{%LOOP L1 {%SYMBOL_COUNT(アノテーション読み取り1)}(
  {%MSGBOX(X:{%REGEX_CAPTURE(<XPosition>(\d+)<\/XPosition>,
    {%P_DATA(アノテーション読み取り1.[L_IDX(L1)])})})}
  {%MSGBOX(Y:{%REGEX_CAPTURE(<YPosition>(\d+)<\/YPosition>,
    {%P_DATA(アノテーション読み取り1.[L_IDX(L1)])})})}
)}

テキストと座標を選択した場合は、テキスト、X,Y座標、幅、高さがタグ付きで取得されます。

対象 タグ
テキスト <Text></Text>
X座標(1/100mm) <XPosition></XPosition>
Y座標(1/100mm) <YPosition></YPosition>
幅(1/100mm) <Width></Width>
高さ(1/100mm) <Height></Height>

取得結果の例 (正規表現「 /<Text>(.+)<\/Text><XPosition>(\d+)<\/XPosition><YPosition>(\d+)<\/YPosition><Width>(\d+)<\/Width><Height>(\d+)<\/Height>/ 」の場合)

{%P_DATA(アノテーション読み取り1.1)}でテキスト、{%P_DATA(アノテーション読み取り1.2)}でX座標、{%P_DATA(アノテーション読み取り1.3)}でY座標、{%P_DATA(アノテーション読み取り1.4)}で幅、{%P_DATA(アノテーション読み取り1.5)}で高さが取得できます。

付箋を選択した場合は、背景色、テキストがタグ付きで取得されます。背景色は赤、青、黄、緑がそれぞれ、付箋赤、付箋青、付箋黄、付箋緑という文字で取得されます。それ以外の色はカラーコードが取得されます。テキストは文字付きの付箋のみ取得され、文字付きでない付箋はTextタグが付与されません。

テキスト付きの付箋は付箋にテキストが一つだけあるタイプのみ対象となります。テキストが複数ある付箋は対象外となります。

対象 タグ
背景色 <FillColor></FillColor>
テキスト <Text></Text>
文字色 <FontForeColor></FontForeColor>
フォントサイズ <FontSize></FontSize>
フォント名 <FontName></FontName>
X座標(1/100mm) <XPosition></XPosition>
Y座標(1/100mm) <YPosition></YPosition>
幅(1/100mm) <Width></Width>
高さ(1/100mm) <Height></Height>

取得結果の例 (正規表現「 /<FillColor>(.+)<\/FillColor><Text>(.+)<\/Text>/ 」の場合)

{%P_DATA(アノテーション読み取り1.1)}で背景色、{%P_DATA(アノテーション読み取り1.2)}でテキストが取得できます。

取得結果の例 (正規表現「 /<FillColor>付箋赤<\/FillColor>/g 」の場合(マッチオールで検索した場合))

赤の付箋が存在する場合に「{%P_EXISTS(アノテーション読み取り1.1)}」がTrueになります。

取得結果の例 (正規表現「 /<Text>Test<\/Text>/g 」の場合(マッチオールで検索した場合))

「Test」が入力された付箋が存在する場合に「{%P_EXISTS(アノテーション読み取り1.1)}」がTrueになります。

正規表現による検出

正規表現(perl互換)による検出を行います。以下の2つのモードがあります。検索対象の文字列からマッチする文字列を複数取得したい場合は、「マッチオール」モードをご使用ください。

正規表現は、「/PATTERN/img」のように、スラッシュで囲い、最後にオプション文字を記述する書式になっています。(PATTERNは任意の正規表現文字列)

オプション文字の意味は以下の通りです。

オプション 内容
g グローバルマッチ。すべてのマッチパターンを検出します。マッチオールモードのみ有効になります。
i 大文字、小文字を区別しない。
m 文字列を複数行として扱う。

正規表現の詳細についてはPerlの参考書等を参照願います。

また、弊社にて、正規表現の設定を行うサービス(有料)もご用意しております。

マッチパーツ

正規表現の「( )」の中のパターンを取得するモードです。括弧の中身が内部変数に順に格納されます。

例えば、 /<FAX1>(.+?)<\/FAX1>.+<FAX2>(.+?)<\/FAX2>/
このような正規表現を書いた場合、パターンにマッチすると、 <FAX1> </FAX1> の間の文字が、
{%P_DATA(アノテーション読み取り1.1)} 」、 <FAX2> </FAX2> の間の文字が、 「 {%P_DATA(アノテーション読み取り1.2)} 」、で参照可能となります。

注:マッチパーツモードでは、オプション「g」には対応していません。

マッチオール

正規表現にマッチした全体部分が、内部変数に格納されます。
オプション「g」に対応していて、「g」を指定した場合は、複数のパターンマッチを行い結果を順に内部変数に格納します。

結果は、「 {%P_DATA(アノテーション読み取り1.1)} 」、
{%P_DATA(アノテーション読み取り1.2)} 」と、検出した個数分、番号で参照できます。

注:マッチオールモードでは正規表現「( )」で取得する部分検出には対応していません。

グループ内のアノテーションを対象にする

チェックすると、グループ化されたアノテーションも検索の対象となります。

グループ化されたアノテーションの座標はページの左上からの位置となります。

カスタムアノテーションの子アノテーションを対象にする

チェックすると、カスタムアノテーションの子アノテーションも検索の対象となります。

取得したアノテーションの座標はページの左上からの位置となります。

連結文字

アノテーション読み取りでは、ページ内に存在するアノテーションを一つの文字として全て連結した後で、正規表現によるマッチングを行います。

連結文字の設定では、連結の際に挿入する文字を選択します。この挿入された文字を考慮して正規表現パターンを作成してください。

ページ指定

アノテーション読み取りを行うページを指定します。

指定ページを選択してページ番号を指定するか、全ページを選択します。

アノテーション読み取りの条件を指定する

チェックするとアノテーション読み取りを行うかどうか条件を指定できます。条件には、マクロ書式を使用し、最終的に、「True」又は「False」の何れかの文字を返却するようにします。