1

ライブサイクルでPDFフォームを作成しました。静的PDF。今、私はこのpdfのいくつかのフィールドに記入したいと思います。テキストボックスに問題はありませんが、ドロップダウンリストに問題があります。それは空で、私はそれを移入したいと思います。

PdfReader pdfReader = new PdfReader(pdfTemplate);
PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(newFile, FileMode.Create));
AcroFields pdfFormFields = pdfStamper.AcroFields;

pdfFormFields.SetField("Dep", "44");
pdfFormFields.SetField("grp", "0");
pdfFormFields.SetListOption("gardien", new string[] { "English", "German", "French", "Spanish", "Dutch" }, new string[] { "EN", "DE", "FR", "ES", "NL" });

最初の2つのSetFieldは問題なく、機能します。しかし、SetListOptionは私にこのエラーを与えます:

指定されたキーが辞書に存在しませんでした

plzを手伝ってくれませんか、何かが恋しかったですか?

4

1 に答える 1

1

フォーム フィールドのように見える Designer/LiveCycle が作成するものと PDF フィールドを混合することについて話している、数年前のこのスレッドを参照してください。

基本的に、iText (および iTextSharp)SetFieldは、LiveCycle で作成されたフィールドのみをサポートします。

つまり、回避策はフィールドの名前の代わりにキー名を使用することです。foreachプロパティで aを実行すると、キー名を見つけることができますpdfFormFields.Fields。のような結果になりtopmostSubform[0].Page1[0].DropDownList1[0]ます。

それができたら、次のことができます。

pdfFormFields.SetListOption("topmostSubform[0].Page1[0].DropDownList1[0]", new string[] { "English", "German", "French", "Spanish", "Dutch" }, new string[] { "EN", "DE", "FR", "ES", "NL" });

非常に重要です!! ここで設定した値は、Adobe Reader/Acrobat で機能しますが、LiveCycle では無視されます。LiveCycle 内から PDF を作成しているが、それを使用して再度開く理由がない場合は、それで問題ありません。XFA にまったく依存している場合、それも壊れる可能性があります。

于 2011-08-02T18:20:59.983 に答える