QRコード読み取り設定は、DocuWorks文書からQRコードを読み取る場合に設定を行います。
XDW文書オープンの下か、ページの繰り返しの子ノードに追加します。
XDW文書オープン処理を選択します。最後にオープンされたオープン処理名を返すマクロ「{%DW_GET(OpenName)}」がデフォルト表示されます。
QRコードの読み取りを行うページを指定します。
ページの繰り返し処理内に処理を追加した場合は、処理中ページのカウンタを取得するマクロ「{%DW_GET(PageLoopCount)}」を使用できます。
ページの繰り返し処理内でない場合は、「1」などのページを直接指定します。
QRコードの読み取りは、DocuWorks文書を内部で、イメージに変換して解析を行います。出力解像度はその際の解像度をdpiで指定します。QRコードを読み取るには、300dpiくらいの値を設定することを推奨します。
但し、ソースとなるDocuWorks文書の解像度が低い場合には、出力解像度を高くしても効果が得られない場合があります。
出力解像度は「300,400」のようにカンマ区切りで複数指定できます。複数指定した場合は、指定された解像度でそれぞれ読み取りを行い、結果をマージします。
ページ内のQRコードの解析処理で、QRコードの検出を試みる最大個数を指定します。1~100までの値を設定できます。推奨値は、20です。
この数値は、QRコードを検出する際の目標値であり、実在するQRコードの実際の個数を示すものではありません。
1ページ内にQRコードが数十個と、多量にある場合のみ、数値を調整してください。通常は初期値の20で、標準的な速度で処理が可能です。
数値が低いほど高速になりますが、解析時に、目標値に達した場合、それ以上の解析を行わないため、設定値以上のQRコードを検出できなくなります。
逆に、数値が高いほど、実在するQRコードを検出できる個数が増えます。但し、解析の速度は極端に低下いたします。通常は、この数値を高く設定しないでください。60を超えるあたりから、検出時間が非常に遅くなります。(数分から数十分)
文字コードを「Shift_JIS」「UTF-8」「自動判定」から選択します。
「自動判定」を選択すると、QRコードに格納されている文字の文字コード判定を行い、デコードします。判定可能は文字コードはSJISとUTF-8です。
SJISとUTF-8の判定は、ごくわずかですが、同一のコードを使用している部分があり、判定出来ない場合があります。UTF-8で「’」や「÷」、キリル文字、アラビア文字などのみの文字列の場合に、SJISと判定する場合があります。
また、UTF-8で取得した文字はUNICODEとして内部で記憶されますが、ログやテキストファイル等に出力する際にUTF-8を指定しないと文字化けしてしまいます。
チェックすると、QRコードの読み取りする範囲をパーセント指定で指定できます。
X座標とY座標の範囲をパーセントで指定します。起点は左上になります。下記の例では、赤い部分が読み取りの対象となります。
QRコードの読み取りには時間を要しますので、QRコードの位置が決まっている場合は、できるだけ範囲を指定してください。処理速度が向上します。
チェックすると、検索文字(正規表現)を指定できます。
QRコードの内容から検索する文字を正規表現で指定します。
例えば、「A0001」の様な識別コードが格納されたQRコードを対象に読み取りを行いたい場合で、同じページに「http://www.test.com」の様な関係のないQRコードも印刷されている可能性がある場合に、以下のような正規表現を指定すれば、識別コードが格納されたQRコードのみを読み取り対象とすることができます。
^[A-Z]{1}[0-9]{4}$
上記の正規表現は、先頭(^)からA~Zのアルファベット1文字、数字4文字($は末尾の意味)が格納されたQRコードという意味になります。
チェックするとQRコードを検出したページをメモリに記憶します。ページ分割はファイル移動・コピー処理で行うことができます。
ファイル移動・コピー処理で、分割を行う際に取得できるデータを指定します。
例えば、「{%GET_U(QRコード読み取り1,1,Data)}」と記述しておけば、ページ分割を行った際に、分割後のファイル名にQRコードのデータを使用することができるようになります。
QRコード読み取りで取得したQRコードの内容は、処理名をデータ名としたユーザーデータに保存されます。
ユーザーデータには、「処理名 > ページ内で読み取ったQRコードの番号 > 項目名」のキーで保存されます。
ユーザーデータの3番目の引数に以下のキーを指定すると、対応した情報が取得できます。
キー | 値 |
---|---|
Data | QRコードの内容。 |
DegreeForRotatePage | QRコードを使った正立用の回転角度。 |
Dgree | QRコードの回転角度。 |
Version | QRコードの型番。 |
Level | QRコードの誤り訂正レベル。 |
LeftTopX | QRコードの左上のX座標。(単位はmm) |
LeftTopY | QRコードの左上のY座標。(単位はmm) |
LeftBottomX | QRコードの左下のX座標。(単位はmm) |
LeftBottomY | QRコードの左下のY座標。(単位はmm) |
RightTopX | QRコードの右上のX座標。(単位はmm) |
RightTopY | QRコードの右上のY座標。(単位はmm) |
RightBottomX | QRコードの右下のX座標。(単位はmm) |
RightBottomY | QRコードの右下のY座標。(単位はmm) |
SequenceNumber | QRコードの連結情報の連結番号。 例えば、3個で構成されたQRコードの1番目のQRコードの場合は「1」となります。 |
TotalNumber | QRコードの連結情報の連結個数。 例えば、3個で構成されたQRコードの場合は「3」となります。 |
CheckDigit |
QRコードの連結情報のチェックディジット。
分割前のデータのXORによるチェックサムパリティ(8ビット)が16進文字列で返却されます。 QRコードが分割されていない場合は、全て「0」が返却されます。 |
Dpi | QRコードの取得時の解像度。 |
{%WRITE_LOG(Data:{%GET_U(QRコード読み取り1,1,Data)})}
{%LOOP L1 {%GET_USER_DATA_KEY_COUNT(QRコード読み取り1)}( {%WRITE_LOG(---------------------------------------------)} {%WRITE_LOG(Data:{%GET_U(QRコード読み取り1,[L_IDX(L1)],Data)})} {%WRITE_LOG(Dpi:{%GET_U(QRコード読み取り1,[L_IDX(L1)],Dpi)})} {%WRITE_LOG(Version:{%GET_USER_DATA(QRコード読み取り1,[L_IDX(L1)],Version)})} {%WRITE_LOG(Level:{%GET_USER_DATA(QRコード読み取り1,[L_IDX(L1)],Level)})} {%WRITE_LOG(LeftBottomX:{%GET_USER_DATA(QRコード読み取り1,[L_IDX(L1)],LeftBottomX)})} {%WRITE_LOG(LeftBottomY:{%GET_USER_DATA(QRコード読み取り1,[L_IDX(L1)],LeftBottomY)})} {%WRITE_LOG(LeftTopX:{%GET_USER_DATA(QRコード読み取り1,[L_IDX(L1)],LeftTopX)})} {%WRITE_LOG(LeftTopY:{%GET_USER_DATA(QRコード読み取り1,[L_IDX(L1)],LeftTopY)})} {%WRITE_LOG(RightBottomX:{%GET_USER_DATA(QRコード読み取り1,[L_IDX(L1)],RightBottomX)})} {%WRITE_LOG(RightBottomY:{%GET_USER_DATA(QRコード読み取り1,[L_IDX(L1)],RightBottomY)})} {%WRITE_LOG(RightTopX:{%GET_USER_DATA(QRコード読み取り1,[L_IDX(L1)],RightTopX)})} {%WRITE_LOG(RightTopY:{%GET_USER_DATA(QRコード読み取り1,[L_IDX(L1)],RightTopY)})} {%WRITE_LOG(SequenceNumber:{%GET_USER_DATA(QRコード読み取り1,[L_IDX(L1)],SequenceNumber)})} {%WRITE_LOG(TotalNumber:{%GET_USER_DATA(QRコード読み取り1,[L_IDX(L1)],TotalNumber)})} {%WRITE_LOG(CheckDigit:{%GET_U(QRコード読み取り1,[L_IDX(L1)],CheckDigit)})} )}