2012-01-17 15 views
6

ライブラリ/ツールを使用し: 1)ジャスパーは 2)iReportは を報告3)Javaのジャスパーレポート - カスタムバーコード生成

私はすでに私のレポートのためのいくつかの標準的なバーコードを生成してきたが、今回は、私がよカスタムバーコードを生成しようとしています。カスタムバーコードはcustom-barcode.ttfというフォントファイルです。現時点では、iReportは、必要なカスタムバーコードをサポートしていない2つのバーコードライブラリ、Barcode4jとバーベキューをサポートしています。何か新しいライブラリを使用する際のオーバーヘッドはほとんどありません(私は既にBarcode4jを使用しています)。

私はこのサイトに既に同様の質問(custom barcode font)が存在することを認識しています。

+0

custom-barcode.ttfをお持ちの場合は、レポートにテキスト要素を置き、このフォントを使用するのと同じくらい簡単ですか? – mdahlman

+0

mdahlman前に、iReportデザイナーでフォントをインストールし、テキストフィールドをレポートに引っ張ってpdfEmbeddedプロパティを設定する方法を検討しました。私の試みは完全ではなかったが、何とかそれは意味をなさない。とにかく、私はこれをもう一度やり直して、あなたに戻ってきます。 – bchetty

答えて

2

@ mdahlmanの答えを試してみました。 barcode39 font(無料)とJaspersoftバーベキューを使用して"CODE123"という値を生成しました。 Sample Barcode

フォントのサイズを設定するのは簡単ではありませんが、結果は同じです。私はAndroidの携帯電話でバーコードスキャナを使ってバーコードを確認しました(視覚的にも同様です)。 Barcode39にチェックデジットがないので、これが私にとってうまくいった理由は、おそらく@ bchettyのテストがうまくいきませんでした。これは、1対1の変換で、データに先頭と末尾のアスタリスク(*)が付加されています。チェックディジットを持つバーコードタイプを生成するためにttfを使用する場合は、それをエンコードするための関数(前述のような外部ジャー)が必要です。 Barcode39はちょうど"*" + V${data} + "*"なので、機能は必要ありません。

+0

私はあなたの答えを確認しませんでしたが、私はあなたが正しいと言ったことを知っています。あなたの答えを答えとして選択する。ありがとうございました。 :) – bchetty

1

custom-barcode.ttfがある場合、実際にはテキストとして扱うことができます。したがって、あなたの手順は次のようになります。

  1. カスタムバーコード.ttfのiReportにフォント拡張を作成します。
  2. 関連する式を使用してレポートにテキストフィールドを作成します。
  3. テキストフィールドのフォントを「カスタムバーコード」(またはフォント拡張子と呼ばれるもの)に設定します。希望の出力を得るには、フォントサイズで再生します。

カスタムフォントをバーコードに使用すると、ハックのビットと見なすことができます。しかし、柔軟性に欠けているのは、簡単に補うことができないからです。

+0

mdahlman、私の顧客の要求が変更されました。だから、私はこれに取り組むことができませんでした。だから遅れて申し訳ありません。とにかく、私はこれと恩恵のための答えが欲しかった。私はちょうどこれを試み、それは働いた。だからこそ答えてくれてありがとう。私はこの質問に賞金をもらう前に試しましたが、何とかプレビューでバーコードを見ることができませんでした。私はHTMLプレビューをしていました。私はそれをPDFプレビューに変更しました。 :) – bchetty

+0

mdahlman、私はバーコードスキャナでそれをテストする機会があり、上記のロジックを使用して生成されたバーコードは理解できません。だから、これは答えではありません。私はいつもこれについて疑問を抱きました。バーコードを生成するのが簡単だったかのように、なぜ誰かがjarsファイルのロードを依存関係として使用してバーコードを生成するのでしょうか?とにかく、上記のロジックはフォントのために何らかのバーコードを生成しますが、実際にはマシンでは読み込めません。 – bchetty

+0

フォントを使ってバーコードを生成するのは確かにハックです(私が最初に述べたように)。テキストを太字または斜体にするとどうなりますか?バーコードには意味がありません。 HTMLクライアントにこのフォントがない場合(ほとんどの場合そうでしょう)HTMLでこれを使うことはできません。はるかにクリーンなソリューションは、画像を生成することです。だからこそbarcode4jとバーベキューとZXingがそうしています。しかし、これは別のレベルの作業(Javaコーディング)です。あなたがバーコードを生成すると主張する.ttfを持っている出発点を考えると、それをテキストフィールドに適用する必要があります。 – mdahlman

関連する問題