私は、私が住んでいる場所の近くのフードパントリーの「無料」開発を行っています。彼らはフォームと書類に殺到しており、MySQLサーバーからデータを読み取り(以前のプロジェクトでセットアップした)、データをPDFこれにより、非常に多くの時間を節約でき、これらのフォームに入力するときに行われる多くの人為的エラーを取り除くことができます。
anything PDFファイルの内部についてはわからない。
私の最初の質問は、2つの道のうちどちらに直面していますか? PDFには「フィールド」という概念がありますか、またはPDFライブラリに配置する場所のピクセル座標を伝えることにより、これらの文書に「記入」する必要がありますかデータ?
第二に、これを行うには明らかにオープンソース(およびJava)ライブラリが必要です。 iTextは良いスタートのように思えますが、作業が難しいと聞きました。誰かがここでいくつかのアイデアや一般的な推奨事項を貸してもらえますか?前もって感謝します!
FDF(Form Data Format)テクノロジーを使用して、データをPDFのフィールドに簡単にマージできます。
アドビはそのためのライブラリを提供しています。 Acrobat Forms Data Format(FDF)Toolkit
また、 Apache PDFBox を使用してそれを行うことができます。
無料の電子ブックのインタラクティブフォームに関する章をご覧ください StackOverflowに関するiTextのベストの質問 。次のような質問に対する回答をまとめています。
または、 このビデオ をご覧ください 報告にフォームを使用する方法 ステップバイステップ。
インスタンスを参照してください:
public void manipulatePdf(String src, String dest) throws DocumentException, IOException {
PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader,
new FileOutputStream(dest));
AcroFields fields = stamper.getAcroFields();
fields.setField("name", "CALIFORNIA");
fields.setField("abbr", "CA");
fields.setField("capital", "Sacramento");
fields.setField("city", "Los Angeles");
fields.setField("population", "36,961,664");
fields.setField("surface", "163,707");
fields.setField("timezone1", "PT (UTC-8)");
fields.setField("timezone2", "-");
fields.setField("dst", "YES");
stamper.setFormFlattening(true);
stamper.close();
reader.close();
}