Windows Azure で Copper PDF を運用するには

Microsoft社のクラウド環境であるWindows AzureでCopper PDFを動作させる方法を解説します。

Azure環境での構成

Azureでは仮想環境上に「ロール」と呼ばれる複数のプログラム実行環境を配置することができます。ロールの種類にはASP.NET, PHP等、Internet Information Server (IIS)のウェブアプリケーション実行環境である「Webロール」、バックグラウンドの処理などを行う「Workerロール」、両方の用途に使える「VMロール」があり、Copper PDFはそのうちどのロールでも動かすことができます。

ここでは、WebロールでCopper PDFを動作させ、非クラウド環境と同様にlocalhostへのソケット通信によりウェブアプリケーションからCopper PDFの機能を呼び出す方法を解説します。

なお、Azure環境でサーブレット/JSPを動作させる場合は、Workerロールでアプリケーションサーバー(Tomcat, Jetty等)を起動する方法が一般的ですが、この場合はWebロールがWorkerロールに変わるだけで、やり方はほとんど同じです。

プロジェクトの準備

次のソフトウェアが必要になります。

Copper PDF 3.0.0 以降 (ZIPアーカイブ) Windows用のJava実行環境(JRE,64ビット版を推奨)

また、Windows Azureの開発サイトから次のものを入手してください。

Windows Azure のサブスクリプション Windows Azure SDKおよびWindows Azure Tooks for Microsoft Visual Studio あらかじめ必要な設定をしたVisual Studioのプロジェクトを準備しています。こちらからダウンロードしてください。このプロジェクトをWindows Azure Tooks for Microsoft Visual Studioで読み込んでください。次に、WebRole1のcopperディレクトリにCopper PDFのZIPアーカイブを配置してください。WindowsにJREをインストールし、JREのディレクトリ(通常はC:Program FilesJavajre6)をZIPアーカイブに圧縮し、copperディレクトリに配置してください。 2つのZIPのプロパティを開きCopy to Output DirectoryをCopy if newerに設定してください。 startup.cmdを編集し、次の太字の箇所を先のZIPアーカイブに合わせて書き換えてください。 @REM […]

Barcode4J バーコードXMLフォーマット

はじめに

このページでは、Barcode4Jで使われている、バーコード定義用のXMLフォーマットについて説明します。また、各種バーコードによってサポートされるデータ形式についても説明します。

構文

訳注:原文では名前空間なしのXML構文で書かれていますが、この翻訳では全て名前空間ありの記述としました。Copper PDFや、XSLT等の一般的なXMLアプリケーションでBarcode4Jを使う場合は名前空間が必要です。この翻訳では、名前空間の接頭辞は”bc”としていますが、これは任意に変えられます。

バーコードXMLフォーマットの構文は次の通りです:

<bc:barcode xmlns:bc=”http://barcode4j.krysalis.org/ns” message=”200123456789″> <bc:{type}> {バーコード個別の設定} </bc:{type}> </bc:barcode>

{type}は、「ean-13」や「code39」のようなバーコードタイプ名で置き換えてください。また、「org.krysalis.barcode4j.impl.Code39」のような実装クラスの省略無しのクラス名を使うこともできます。内部的にはBarcodeClassResolverインターフェイスを使って名前を解決しています。

{バーコード個別の設定}は、そのバーコードの種類により、異なります。詳しくは、後述しますが、例としては次のようなものです:

<bc:barcode xmlns:bc=”http://barcode4j.krysalis.org/ns”> <bc:intl2of5> <bc:height>10mm</bc:height> <bc:wide-factor>2.5</bc:wide-factor> </bc:intl2of5> </bc:barcode> データ型

バーコードの設定は、次のデータ型から構成されます。

{boolean}: 値は(true|yes|on)か(false|no|off) {string}: 「hello123」のような簡単なユニコードの文字列 {char}: ユニコード文字 {number}: 「2.43」や「5」などの数字 {unit}: 長さの単位、mm、cm、ptのどれか デフォルトの単位は通常mm(ミリメートル)です。 特殊な単位にmw(モジュール幅)があります。これは1次元バーコードでは線の最小幅で、2次元バーコードではドットの大きさです。 {length}: 「{number}[[ ]{unit}」という形式での長さ。例:1.2mm, 5.0, 3, or 10mw. {checksum-mode}:チェックサムの動作を決定する。 取りえる値は(全ての値が全てのバーコードフォーマットでサポートされているわけではない。):

add:チェックサムが自動的にデータに追加される check:バーコードの描画の間、チェックサムは中断する ignore:チェックサム処理は行われない auto:バーコードタイプのデフォルトの動作 {human-readable-placement}:この列挙型はバーコードの可読部分の位置を決める。 bottom:可読部分はコードシンボルの底部に置かれる top:可読部分はシンボルの上部に置かれる none:可読部分は生成されない {baseline-alignment}:この列挙型はPOSTNETのようなバーコードラインのそろえ方を決める。 […]

バーコード/QRコードプラグイン

このプラグインについて

Copper PDF 2.1.3 以降で、バーコード(QRコードを含む)の表示が可能になるプラグインです。

このプラグインには、

Barcode4J 2.0 http://barcode4j.sourceforge.net/

QRコードクラスライブラリ for Java ver. 0.50beta http://www.swetake.com/qr/java/qr_java.html

を使用しています。

インストール方法

こちらからダウンロードしてください。

ダウンロードパッケージに含まれているcopper-pdf/pluginsの内容を、Copper PDFのpluginsディレクトリの中にコピーしてください。

(DEBまたはRPMパッケージ版のCopper PDFのpluginsディレクトリは/usr/share/copper-pdf/にあります。) Copper PDFが動作中の場合、1分ほど待つか、再起動するとプラグインが読み込まれます。

基本的な使用方法

バーコードタグの詳細な仕様はBarcode4J ドキュメント抄訳を参照してください。ここでは概要を解説します。

パッケージに含まれているサンプルHTMLコード(example.html)もご利用ください。

プラグインをインストールしたCopper PDFでは、HTML/XHTML中に記述された、http://barcode4j.krysalis.org/ns名前空間に属する要素がバーコードに置き換えられます。 例えば、以下の記述はEAN-13(JAN-13)形式のバーコード画像に置き換えられます。

<bc:barcode xmlns:bc=”http://barcode4j.krysalis.org/ns” message=”200123456789″> <bc:ean-13> <bc:height>15mm</bc:height> <bc:module-width>0.33mm</bc:module-width> <bc:quiet-zone enabled=”true”>10mw</bc:quiet-zone> <bc:checksum>add</bc:checksum> <bc:human-readable> <bc:placement>bottom</bc:placement> <bc:font-size>8pt</bc:font-size> </bc:human-readable> </bc:ean-13> </bc:barcode>

要素の記述方法(The Barcode XML format)は以下のページで解説されています。

(英語) http://barcode4j.sourceforge.net/2.0/barcode-xml.html (日本語訳)https://copper-pdf.com/?p=905

このプラグインは、Barcode4Jがサポートする、全ての形式のバーコードを表示することが出来ます。 […]

Code 128

実例

構文 <bc:barcode message=”0123456789″< <bc:code128< <bc:height<15mm</bc:height< <bc:module-width<0.21mm</bc:module-width< <bc:quiet-zone enabled=”true”<10mw</bc:quiet-zone< <bc:human-readable< <bc:placement<bottom</bc:placement< <bc:font-size<8pt</bc:font-size< </bc:human-readable< </bc:code128< </bc:barcode< メモ {height}は少なくともバーコードの長さの0.15倍か0.25インチ以上無ければならない メッセージ書式 有効文字:全7ビットASCII(US-ASCII)文字セットがサポートされている ファンクション1から4までが使用可能であり、メッセージではASCII文字の0xF1 (241), 0xF2 (242), 0xF3 (243) and 0xF4 (244) としてコード化される。 バーコードXMLフォーマットへ戻る PDF スタイル サイトの設定 横書き 縦書き 縦2段 文字 特小 小 中 大 特大 周囲余白 なし 小 大

Codabar

実例

構文 <bc:barcode message=”0123456789″> <bc:codabar> <bc:height>15mm</bc:height> <bc:module-width>0.21mm</bc:module-width> <bc:wide-factor>3.0</bc:wide-factor> <bc:quiet-zone enabled=”true”>10mw</bc:quiet-zone> <bc:human-readable> <bc:placement>bottom</bc:placement> <bc:font-size>8pt</bc:font-size> </bc:human-readable> </bc:codabar> </bc:barcode> メモ 現在チェックサムは実装されていない メッセージ書式 有効な文字は[0~9]と[- $ : / . +] 開始と終了文字は[a b c d e * n t] バーコードXMLフォーマットへ戻る PDF スタイル サイトの設定 横書き 縦書き 縦2段 文字 特小 小 中 大 特大 周囲余白 なし 小 大

Interleaved 2 of 5

実例

構文 <bc:barcode message=”0123456789″> <bc:intl2of5> <bc:height>15mm</bc:height> <bc:module-width>0.21mm</bc:module-width> <bc:wide-factor>3.0</bc:wide-factor> <bc:quiet-zone enabled=”true”>10mw</bc:quiet-zone> <bc:checksum>ignore</bc:checksum> <bc:human-readable> <bc:placement>bottom</bc:placement> <bc:font-size>8pt</bc:font-size> <bc:display-checksum>false</bc:display-checksum> </bc:human-readable> </bc:intl2of5> </bc:barcode> メモ {height}は少なくともバーコードの長さの0.15倍か0.25インチのどちらか大きい値以上無ければならない {module-width}は少なくとも7.5ミル(1ミルは1000分の1インチ)か0.19ミリメートル以上必要である。 もし、狭いエレメントが20ミル以上なら、広いエレメントは2倍から3倍の範囲に収める必要がある。もし、狭いエレメントが20ミル未満なら、倍率は2.2倍を超えなければならない。 {quiet zone}は少なくともモジュール幅の10倍か0.25インチは無ければならない。 {display-checksum}は計算されたチェックサムを可読領域に含めるかを決定する。 このシンボロジーでは二つの文字が交互に配置されるので(一つはバーに、次は空白部分に置かれる)、読み取り機により返されるメッセージは常に偶数桁の数値になる。必要なら、0文字桁がデータの前に追加される。 メッセージ書式

有効な文字は[0~9]である。

バーコードXMLフォーマットへ戻る PDF スタイル サイトの設定 横書き 縦書き 縦2段 文字 特小 小 中 大 特大 周囲余白 なし 小 大

DataMatrix

実例

構文 <bc:barcode message=”2012345″> <bc:datamatrix> <bc:module-width>0.352777mm</bc:module-width> <!– 1 pixel at 72dpi –> <bc:quiet-zone enabled=”true”>1mw</bc:quiet-zone> <bc:shape>force-none</bc:shape> </bc:datamatrix> </bc:barcode> メモ このシンボロジーは可読領域を持たない。 このアルゴリズムは常に可能な最も小さいシンボル配列を選択する。 構造的な付加機能はまだ実装されていない。 メッセージ書式 全てのISO-8859-1文字は有効なメッセージ文字である。 数字文字だけを使えばより小さいシンボルサイズに収められる。 現時点では、ECI機能は使用できない。ISO-8859-1エンコーディング文字だけが使用できる。 現時点では、FNC1と読み取り機のプログラミングシグナルはコード化できない。 アップリケーションの中には(グループ区分け文字)や (レコード区分け文字)のような特殊なASCII文字を使用するものがある。そのままバーコード4Jに送ってよい。Javaではそのようなアップリケーションのプリアンブル(“[)>RS05GS”)は”[)>u001E05u001D”.と表現される。同じデータがURLの一部としてエンコードされる(バーコードサーブレット使用時)と、”%5B%29%3E%1E05%1D”となる。 バーコードXMLフォーマットへ戻る PDF スタイル サイトの設定 横書き 縦書き 縦2段 文字 特小 小 中 大 特大 周囲余白 なし 小 大

PDF417

実例

構文 <bc:barcode message=”2012345″> <bc:pdf417> <bc:module-width>0.352777mm</bc:module-width> <!– 1 pixel at 72dpi –> <bc:row-height>3mw</bc:row-height> <bc:columns>2</bc:columns> <bc:min-columns>2</bc:min-columns> <bc:max-columns>2</bc:max-columns> <bc:min-rows>3</bc:min-rows> <bc:max-rows>90</bc:max-rows> <bc:ec-level>0</bc:ec-level> <bc:quiet-zone enabled=”true”>2mw</bc:quiet-zone> <bc:vertical-quiet-zone>2mw</bc:vertical-quiet-zone> <bc:width-to-height-ratio>3.0</bc:width-to-height-ratio> </bc:pdf417> </bc:barcode> メモ このシンボロジーは可読領域を持たない。 {ec-level}はエラー修正レベルであり、0から8の間で無ければならない。 {vertical-quiet-zone}が明示的に設定されない場合、{horizontal-quiet-zone}が設定されているのと同じことになる。 メッセージのサイズによって、{columns}と{ec-level}は調整する必要があるかもしれない。起こりえるエラーのメッセージを注意深く読んでほしい。 代替方法として、{columns}セッティングを削除して、メッセージによってシンボルを伸び縮みさせられる{min/max-columns}と{min/max-rows}を扱っても良い。{width-to-height-ratio}を使って、シンボルの形をコントロールできる。(注:有効な行数は3から90の間に、有効な列数は1から30の間に設定しなければならない。) {columns}設定を使うと{min/max-columns}設定を無効にする。あるいは言い換えるなら、{columns}を設定すると{min-columns}と{max-columns}を同じ値に設定する。 Macro PDF417 機能はまだ実装されていない。 Compact PDF417 機能はまだ実装されていない。 メッセージ書式 印刷可能な全てのASCII文字は有効な文字である。 バイトコンパクションモードは256の全ての取りえる8ビットのバイト値をコード化させられる。 数字文字だけを使えばより小さいシンボルサイズに収められる 現時点では、ECI機能は使用できない。全ての文字は”cp437″ (PC437)エンコーディングで翻訳される。 バーコードXMLフォーマットへ戻る PDF スタイル サイトの設定 横書き 縦書き 縦2段 文字 特小 小 […]

USPS Intelligent Mail

実例

構文 <bc:barcode message=”01234567094987654321012345678″> <bc:usps4cb> <bc:module-width>0.02in</bc:module-width> <bc:track-height>0.050in</bc:track-height> <bc:ascender-height>0.050in</bc:ascender-height> <bc:interchar-gap-width>0.025in</bc:interchar-gap-width> <bc:quiet-zone enabled=”true”>10mw</bc:quiet-zone> <bc:vertical-quiet-zone>0.028in</bc:vertical-quiet-zone> <bc:bc:human-readable> <bc:placement>bottom</bc:placement> <bc:font-size>8pt</bc:font-size> </bc:human-readable> </bc:usps4cb> </bc:barcode> メモ 上記の設定値の有効範囲の情報に関してはこのシンボルの仕様詳細を参照していただきたい。 メッセージ書式 有効な文字は[0~9] コード処理の過程でその他の全ての文字は自動的に除去される。 リンク

仕様詳細:http://ribbs.usps.gov/OneCodeSolution(英語)

バーコードXMLフォーマットへ戻る PDF スタイル サイトの設定 横書き 縦書き 縦2段 文字 特小 小 中 大 特大 周囲余白 なし 小 大

POSTNET

実例

構文 <bc:barcode message=”2012345″> <bc:postnet> <bc:height>15mm</bc:height> <bc:module-width>0.02in</bc:module-width> <bc:quiet-zone enabled=”true”>10mw</bc:quiet-zone> <bc:checksum>ignore</bc:checksum> <bc:interchar-gap-width>0.026in</bc:interchar-gap-width> <bc:tall-bar-height>0.125in</bc:tall-bar-height> <bc:short-bar-height>0.050in</bc:short-bar-height> <bc:baseline-alignment>bottom</bc:baseline-alignment> <bc:bc:human-readable> <bc:placement>bottom</bc:placement> <bc:font-size>8pt</bc:font-size> <bc:display-checksum>false</bc:display-checksum> </bc:human-readable> </bc:postnet> </bc:barcode> メッセージ書式 有効な文字は[0~9]である {display-checksum}は計算されたチェックサムを可読領域に含めるかを決定する。 バーコードXMLフォーマットへ戻る PDF スタイル サイトの設定 横書き 縦書き 縦2段 文字 特小 小 中 大 特大 周囲余白 なし 小 大