You can NOT mix Designer-based forms with the AcroFields() methods -
since Designer forms MAY NOT have any fields...
Leonard
On Feb 29, 2008, at 12:30 PM, VanderMolen, David wrote:
> That is true, but if generated pdf is an end product, that may be
> adequate. The point I am trying to make is that if the pdf was
> created with Designer, setListOption causes a nullpointer if you
> use the field name instead of the field key, which is somewhat
> confusing if you are also using setField. For posterity:
>
> AcroFields fields=stamper.getAcroFields();
>
> boolean bSuccess=fields.setField("state", "MI"); //Works for
> Designer-generated PDF's only
>
> bSuccess=fields.setListOption("state", new String[]
> {"IN","MI","OH"},new String[]{"Indiana","Ohio","Michigan"}); //
> Causes error for Designer-produced PDF's, just fails for others
> (becuase state is not the Item key)
>
> bSuccess=fields.setListOption("app[0].page1Form[0].state[0]", new
> String[]{"IN","MI","OH"},new String[]
> {"Indiana","Michigan","Ohio"}); //works for all, values will show
> in Reader but not Designer
>
> Thank you,
> Dave
>
>
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] Behalf Of
> Paulo
> Soares
> Sent: Friday, February 29, 2008 11:20 AM
> To: Post all your questions about iText here
> Subject: Re: [iText-questions] Nullpointer in setListOption()
>
>
> It looks like it works but it doesn't. It changes the acroform but not
> the xfa and if you return to Designer the changes will be gone.
>
> Paulo
>
>> -----Original Message-----
>> From: [EMAIL PROTECTED]
>> [mailto:[EMAIL PROTECTED] On
>> Behalf Of VanderMolen, David
>> Sent: Friday, February 29, 2008 4:16 PM
>> To: Post all your questions about iText here
>> Subject: Re: [iText-questions] Nullpointer in setListOption()
>>
>> I used Designer, and the setListOption works if passed the
>> Field key, but not the field name. Methods like setField use
>> the xfa.findFieldName and so work with the name, not just the key.
>>
>> -----Original Message-----
>> From: [EMAIL PROTECTED]
>> [mailto:[EMAIL PROTECTED]
>> Behalf Of Paulo
>> Soares
>> Sent: Friday, February 29, 2008 10:16 AM
>> To: Post all your questions about iText here
>> Subject: Re: [iText-questions] Nullpointer in setListOption()
>>
>>
>> iText only supports setField() with PDFs created with Designer.
>>
>> Paulo
>>
>>> -----Original Message-----
>>> From: [EMAIL PROTECTED]
>>> [mailto:[EMAIL PROTECTED] On
>>> Behalf Of VanderMolen, David
>>> Sent: Friday, February 29, 2008 3:07 PM
>>> To: [email protected]
>>> Subject: [iText-questions] Nullpointer in setListOption()
>>>
>>> I am using a pdf created with Adobe Designer 7.0...
>>>
>>> When calling setListOption with a shortened (non-key) field
>>> name, the method fails with a nullpointer exception on the
>>> Item. Is there a reason that the fieldName parameter that
>>> works for setField doesn't work here?
>>>
>>> public boolean setListOption(String fieldName, String[]
>>> exportValues, String[] displayValues) {
>>> if (exportValues == null && displayValues == null)
>>> return false;
>>> if (exportValues != null && displayValues != null &&
>>> exportValues.length != displayValues.length)
>>> throw new IllegalArgumentException("The export
>>> and the display array must have the same size.");
>>> int ftype = getFieldType(fieldName);
>>> if (ftype != FIELD_TYPE_COMBO && ftype != FIELD_TYPE_LIST)
>>> return false;
>>> Item fd = (Item)fields.get(fieldName);
>>> //--nullpointer here for valid field name, expects the
>>> .whatever[0]. pathing
>>>
>>> public boolean setListOption(String fieldName, String[]
>>> exportValues, String[] displayValues) {
>>> if (exportValues == null && displayValues == null)
>>> return false;
>>> if (exportValues != null && displayValues != null &&
>>> exportValues.length != displayValues.length)
>>> throw new IllegalArgumentException("The export
>>> and the display array must have the same size.");
>>> int ftype = getFieldType(fieldName);
>>> if (ftype != FIELD_TYPE_COMBO && ftype != FIELD_TYPE_LIST)
>>> return false;
>>>
>>> //(stole this code from setField method, which works)
>>> if (xfa.isXfaPresent()) {
>>> fieldName = xfa.findFieldName(fieldName, this);
>>> if (fieldName == null)
>>> return false;
>>> String shortName =
>>> XfaForm.Xml2Som.getShortName(fieldName);
>>> }
>>> Item fd = (Item)fields.get(fieldName); //--sets
>>> values correctly
>
>
> Aviso Legal:
>
> Esta mensagem é destinada exclusivamente ao destinatário. Pode
> conter informação confidencial ou legalmente protegida. A
> incorrecta transmissão desta mensagem não significa a perca de
> confidencialidade. Se esta mensagem for recebida por engano, por
> favor envie-a de volta para o remetente e apague-a do seu sistema
> de imediato. É proibido a qualquer pessoa que não o destinatário de
> usar, revelar ou distribuir qualquer parte desta mensagem.
>
>
>
> Disclaimer:
>
> This message is destined exclusively to the intended receiver. It
> may contain confidential or legally protected information. The
> incorrect transmission of this message does not mean the loss of
> its confidentiality. If this message is received by mistake, please
> send it back to the sender and delete it from your system
> immediately. It is forbidden to any person who is not the intended
> receiver to use, distribute or copy any part of this message.
>
>
>
>
> ----------------------------------------------------------------------
> ---
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> iText-questions mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/itext-questions
> Buy the iText book: http://itext.ugent.be/itext-in-action/
>
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions
Buy the iText book: http://itext.ugent.be/itext-in-action/