2011-01-05 10 views
8

私たちは、iTextを使用して複数の文書のフォームフィールドを自動的に入力し、それらの文書を1つの結果PDFに連結します。PDFを連結してAcrobat Readerの拡張機能を保存する

アドビは、Acrobat Readerのユーザーがフォームフィールドの変更を含むPDFを保存できるように、Acrobat Readerで機能を拡張オプションを導入しました。

これは、iTextが回避できる、Adobe独自の機能です。

私は、追加モードでPdfStamperクラスを使用して、特定のドキュメントの回避策を実行できました。 PDFにはフォームフィールドが含まれているため、PdfCopyFieldsクラスを使用して連結を実行します。 PdfCopyFieldsには追加モードがありません。

iText(任意のバージョン)を使用してPDFを既存のPDFに追加する別の方法はありますか?

答えて

5

PdfCopyFieldを修正して追加モードで保存できるように十分に知っておく必要があります。

あなたはその機能を複製し、PdfStamp(自分のクラスまたはそれ以外で)、PdfCopyFieldsのサブクラス、またはPdfCopyFieldsを直接変更することができます。

大きな詰まりブロック PDF内の同じ名前のフィールドはすべて同じ値を共有します。作成したPDFに同じフォームのコピーが2つある場合は、同じデータの2つのビューがあります。

名前の衝突が発生した場合(ここでは「市」は現在の住所の一部である可能性がありますが、そこには生まれた都市があるかもしれません)、同じ値。

命名の衝突がすべて意図的に行われるような包括的なシステムがあれば、それは壊れてしまいます。 "FirstName"が常に同じ人物を参照していて、それを変更すると問題のすべてのフォーム間で値を変更しなければならない場合、あなたは金色です。そうでなければ、PdfStamperの平坦化能力はとても人気があります。

代わりに、このような衝突を避けるために、フォームを一緒に貼り付ける前に、すべてのフィールドの名前を変更します。

包括的システムであっても、あなたがマージして衝突を探すために提案するフォームを通過する小さなツールを作成することをお勧めします。たぶんそれらの値をいくつかのテストデータに列挙します。あなたは "Fly:House、Common"対 "Fly:Southwest Airlines"のラインに沿って何かをキャッチするかもしれません。

おそらくその特定の例ではありませんが、誰が知っていますか? ;)

+0

ありがとうございました。フィールド名の衝突の問題については、追加されたドキュメントのカウントに基づいてすべてのフィールドにポストフィックスを追加するだけです。それは私たちのために働く。 –

関連する問題