Java 印刷バーコード ラベル
質問
誰かが Java を使用してバーコード ラベルを印刷するための正しい方向を示してくれませんか?バーベキューライブラリーが使えます(http://barbecue.sourceforge.net/) バーコードを画像として生成するには、画像 (および人間が判読できるキャプション) を印刷用の Avery ドキュメント テンプレートに配置する方法が必要です。
解決
iTextのライブラリはかなり想像バーコードのすべての種類をサポートしています。あなたは、PDFを生成し、どちらかそれらを保存したり、内部的にそれらを印刷することができます。
他のヒント
私は次の 2 つの理由から、バーベキューの代わりに barcode4j ライブラリを使用することをお勧めします。
Barbecue バーコード オブジェクトは Java UI コンポーネント (例:Barcode クラスは JComponent を拡張します)。Java UI が使用されていない場合、これにより不要な依存関係が作成されます。バッチまたはコマンドラインベースのアプリケーション用。Java UI でバーコード クラスを使用したい場合は、継承ではなく集約を使用する必要がありました。
Barcode4J は現在サポートされているようです - バージョン 2.0 がリリースされ、著作権日は 2012 年です
次に、バーコードをプリンターが理解できる形式に変換するという問題が発生します。これについては、openlabelprint.org をお勧めします (私が書きました!) - これは、barcode4j を使用し、以下を提供する別のオープン ソース プロジェクトです。
SVG (Scalable Vector Graphics - オープンな w3c 標準) を使用してラベル レイアウトを定義する機能と、
barcode4j から SVG のビットマップへのラスタライズ (および SVG 内の周囲のラベル レイアウト) (openlabelprint は、ラスタライズおよび他の SVG タスクに優れた Apache SVG Batik Java ライブラリを適用します)
ZPL 低レベル言語を使用した Zebra プリンタでのビットマップの印刷。openlabelprint には、png ビットマップを ZPL に変換し、これを標準 Java プリンタ システム経由で Zebra プリンタに送信するユーティリティが組み込まれています。また、openlabelprint は、他のプリンター言語用に拡張するための API も提供していますが、ZPL は一部の非 Zebra ブランドでサポートされています。
私はJavaを使用してバーコードを印刷していますが、私はバーコード印刷のために事前にプログラムされた機能を持つプリンタを使用しています。だから私は何のコードが印刷するプリンタを言っているし、それが残りの部分はありません。それはかもしれないプリンタのために支払うことを喜んであなたがいる場合はあなたにいくつかの時間を節約できます。
これは、またはあなたにとって有用であってもなくてもよいが、私はそれを言及しようと思いました。
私はあなたが定規であなたのAveryラベルのページを測定する必要がありますし、その後、あなたのJavaコードで、あなたが適切にそのページ上のバーコード画像を印刷し、相殺するために何ページ/フルレター/ A4を作成する必要がありますだと思います定規であなたの測定値に基づいて位置ます。
あなたが「バーベキュー」から得た画像を印刷しようとしたことがありますか?
JZebra を試してみてください。これはアプレットであり、開始点として適しています。Java ソース コードを見てください。
http://code.google.com/p/jzebra/
ゼブラの場合は、この簡単なガイドが役に立ちます。この Zebra コマンドでは
N
q609
Q203,26
B26,26,0,UA0,2,2,152,B,"777777"
A253,56,0,3,1,1,N,"JHON3:16"
A253,26,0,3,1,1,N,"JESUSLOVESYOU"
A253,86,0,3,1,1,N,"TEST TEST TEST"
A253,116,0,3,1,1,N,"ANOTHER TEST"
A253,146,0,3,1,1,N,"SOME LETTERS"
P1,1
JZebra について
var applet = document.jzebra;
if (applet != null) {
applet.append("N\n");
applet.append("q609\n");
applet.append("Q203,26\n");
applet.append("B26,26,0,UA0,2,2,152,B,\"777777\"\n");
applet.append("A253,56,0,3,1,1,N,\"JHON3:16\"\n");
applet.append("A253,26,0,3,1,1,N,\"JESUSLOVESYOU\"\n");
applet.append("A253,86,0,3,1,1,N,\"TEST TEST TEST\"\n");
applet.append("A253,116,0,3,1,1,N,\"ANOTHER TEST\"\n");
applet.append("A253,146,0,3,1,1,N,\"SOME LETTERS\"\n");
applet.append("P1,1\n");}
これをクリアした上で:
EPL は 1 行に 1 つのコマンドです。コマンドはコマンド識別子 (通常は文字) で始まり、その後にそのコマンドに固有のパラメーターのカンマ区切りのリストが続きます。これらの各コマンドは、EPL2 プログラミング ドキュメントで検索できます。上記の例のコマンドの英語版を次に示します。
- 最初の改行を送信すると、以前の コマンドがサブミットされます。
- [N] 画像バッファをクリアします。これは重要なステップであり、 通常、EPL ドキュメントの最初のコマンドにする必要があります。前回のジョブでプリンターがどのような状態になったかは誰にもわかりません。
- Q]ラベル幅を609ドットに設定します(3インチラベルx 203 dpi = 609ドット幅)。
- [Q]ラベルの高さを203ドット(1インチラベル)に設定し、26 ラベル間のドットギャップ。(プリンタはおそらく自動で しかし、これは痛くない。
- [B] に「777777」という値のUPC-Aバーコードを描画します。 x = 26 ドット (1/8 インチ)、y = 26 ドット (1/8 インチ)、細いバー付き 幅を 2 ドットとし、高さを 152 ドット (3/4 インチ) にします。( ラベル座標系の原点は左上隅です ラベルの。
- [A]テキスト「JESUSLOVESYOU」を x = 253ドット(3/4インチ)、y = 26ドット(1/8インチ) プリンタフォント「3」、通常の水平および垂直スケーリング、 そして、黒地に白の派手な効果はありません。
すべてのスタートラインは似ています。10.[P] 1 枚のラベルを 1 部印刷します。