42

それについては疑問がありましたが、最近ではなく、テクノロジーはそれ以来進歩していたに違いありません.

要件:

  • 定義済みのテンプレートに基づいて pdf ドキュメントを生成する (pdf フォームまたは xsl-fo のいずれかを使用できます)
  • テキストデータを埋めることができる
  • グラフィックデータを入力できる (生成されたバーコード)
  • パッチを適用(再コンパイル)せずに本番環境でpdfテンプレートを変更できる
  • データベースに保存する (blob として) および/または印刷する pdf ファイルの生成
  • オープンソース/無料

想定されるオプションは、iText、PDFBox、FOP、その他ですか? 上記の要件に基づく推奨事項は何ですか?

4

7 に答える 7

31
  1. iText; 現在、iText は商用ライブラリであり、最新バージョンはもはや無料ではありません (古いバージョンのフォークは MIT ライセンスの下に残っています: OpenPDF )
  2. FOP; 私はFOPで多くの仕事をしました。これはかなりリソースを消費し (Java > XML > XSLT > PDF)、複雑な PDF は悪夢になります (20k 以上の LoC を持つ XSLT になる可能性があります)。
  3. PDFBox; 大規模なプロジェクトでは使用しませんでしたが、最良の代替手段のようです
  4. 空飛ぶ円盤はまだチェックしていません

結論として、PDFBox を試してみます。バーコードの要件によっては、バーコード (フォント) を PDF にインライン化するか、クライアントにフォントを配布する必要がある場合があります。これらの問題に対処してください。

于 2011-07-08T14:33:43.253 に答える
6

あなたの基準はiTextとApahce FOpの両方で満たすことができると思いますが、ここにはいくつかの追加基準があります:

  • ライセンス: FOP は Apache ライセンスに基づいているため、商用利用にも「フレンドリー」です。
  • 柔軟性: iText のような低レベルの API は、高レベルの FOP よりも柔軟です。
  • ビジュアル ツール:ここには FOP のデザイナーが 1 人います
  • プログラミング モデル: iText はプログラミング API に基づいていますが、FOP は XSLFO テンプレートを必要とし、プログラミングが少なくて済みます。
  • 独自対標準。Apache FOP は標準に基づいているため、ベンダーに依存しませんが、iText は独自の API です。
  • パフォーマンス: FOP はよりコンピューティング集約型であると言われています。もちろん、ターゲットのPDFファイルが何であるかによって異なります。FOPを使用している私にとって、これは決して問題ではありませんでした.

PDFBox は使用しません。既存の PDF ファイルの読み取りと変更には適していますが、PDFBox を使用してゼロからファイルを作成するのは大変な作業になる可能性があります。

于 2011-12-10T16:13:50.637 に答える
6

iText に基づくフライングソーサーhttp://code.google.com/p/flying-saucer/でプロジェクトを実行しました。無料で使いやすく、CSS のサポートが充実しており、優れたオープン ソースを備えています。

于 2011-07-08T14:27:18.990 に答える
4

私は少し偏っています(コミッター)が、iTextをお勧めします。

事前定義されたテンプレートに基づいてPDFドキュメントを生成します(PDFフォームまたはxsl-foのいずれかを使用できます)

PDFフォーム:チェック

テキストデータを入力できる

PDFフォーム、確認してください。プログラムによるレイアウトを実行することもできます。

グラフィックデータ(生成されたバーコード)を入力できる

小切手。既知の場所(「この特定の注釈の場所」である可能性があります)が与えられると、iTextはシンボルと値を与えられたバーコードを描画します。ここにリストされている定数から、サポートされているシンボルのリストを推測できます。

この種のことのために、私は「アイコンのみ」の外観を持つボタンフィールドを使用します。「アイコン」は、任意のPDF描画手順、または画像です。iTextのバーコードはPdfTemplate、ボタンに問題なく詰め込めるように作成します。

パッチを適用せずに本番環境でPDFテンプレートを変更できる(再コンパイル)

すべてのレイアウトがPDFテンプレートに組み込まれていて、「バーコードがここに表示される」情報がソースにハードコードされていない場合、あなたは金色です。

データベースに(blobとして)保存および/または印刷するPDFファイルを生成する

PDFはPDFですPDFはPDFです。ちなみに、追加の作業があれば、iTextを使用してPDF/Aファイルを作成できます。「A」はアーカイブ用です。

オープンソース/無料

オープンソース:はい。v2.1.7は、MPLを使用する最後のバージョンでした。5.x以降、すべてのiTextリリースはAGPLの下にあります。はい、iTextとiTextSharpの間でバージョン番号を同期するために、iTextは2.1.7から5.0にスキップされました。

正確に「少しf」が無料というわけではありませんが、2.1.7バージョンを入手するのはそれほど難しくありません。OTOH、それはアバンダンウェアで、メンテナンスされていません。情報に通じた消費者になる。

于 2011-07-11T22:19:52.360 に答える
2

空飛ぶ円盤の別の親指。非常にうまく機能し、html と css に精通していれば簡単に使用できます。

実際には文書化されていないのは、iTexts の組み込みバーコード機能にアクセスする方法です。ただし、これは簡単に実現できます。ここに短いチュートリアルを掲載しました: http://andreas.haufler.info/2012/12/generating-barcodes-in-pdfs-with-flying.html

于 2012-12-19T11:04:10.750 に答える
2

PDFをどの程度正確に作成したいかによっても異なります。FOP は XML から機能し、IText では Java からプログラムで作成できます。

于 2011-07-08T15:19:54.313 に答える
-2

BFO(Big faceless)はコマーシャルだけど誰も話題にしない

于 2012-07-06T07:02:38.030 に答える