2011-07-15 22 views
0

同じ名前の複数のフィールドの場合iTextSharp acroFields.SetField(Name, Value)は最初のフィールドのみの値を設定します。残りのフィールドの値を設定するにはどうすればよいですか? acroFields.FieldsスルーループするとiTextSharp acroFields.SetFieldメソッドと同じ名前の複数のフォームフィールド

acroFields.SetField("TextField1", Value); 

テキストフィールド1が設定されているという名前のテキストフィールドの値を使用する場合は、フィールド名が

form1[0].#subform[0].TextField1[0] - TextField 
form1[0].#subform[0].TextField2[0] - TextField 
form1[0].#subform[0].TextField2[1] - TextField 
form1[0].#subform[0].TextField2[2] - TextField 

として報告されています。 TextField1という名前のフィールドが1つしかないので、問題ありません。しかし

acroFields.SetField("TextField2", Value); 

のTextField2が設定されているとして名前最初テキストフィールドの値を使用した場合。 TextField2という名前の残りの2つのフィールドは、未設定のままです。

PDFはAdobe LiveCycleで作成され、静的PDFとして保存されます。つまり、動的XFAではありません。

答えて

4

完全なフィールド名を使用できますか?

acroFields.SetField("form1[0].#subform[0].TextField2[0]", Value); 
+0

よくフィールド名は関連する名前です。 CustomerFirstName、CustomerAddress1など。現在、CustomerFirstNameが複数回使用された場合、acroFields.SetField( "CustomerFirstName"、Value);最初のフィールドにのみ値を設定します。私はあなたに提案されたものと同様の回避策を使用していますが、APIがより単純な方法を提供すると思います。 –

+0

@amit_gあなたの回避策が正確に何だったと言えますか? – d456

+0

@ d456の場合は、答えに示されているように完全修飾名を使用します。 –

関連する問題