Hi,

> Am 29.03.2016 um 17:01 schrieb Wojack, Robert (USTP) 
> <[email protected]>:
> 
> Thanks for that info! We shall upgrade to 1.8.11
> 

what about PDFBox 2.0.0? Dependent on what you are doing there are a lot of 
improvements and some new functionality:

- better parsing
- enhancements to AcroForms
- much better rendering
…

BUT there might be some changes to your code necessary.

BR
Maruan


> -----Original Message-----
> From: Maruan Sahyoun [mailto:[email protected]] 
> Sent: Tuesday, March 29, 2016 6:01 AM
> To: [email protected]
> Subject: Re: How to bind distinct OnValues for checkbox group?
> 
> Hi,
>> Am 28.03.2016 um 22:51 schrieb Wojack, Robert (USTP) 
>> <[email protected]>:
>> 
>> Thanks Maruan!
>> 
>> However, when try to use the code, I get an exception in line 4th line:
>> 
>> Exception in thread "main" java.lang.ClassCastException: 
>> org.apache.pdfbox.pdmodel.interactive.form.PDCheckbox cannot be cast 
>> to org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationWidget
>> 
>> As a reminder, I'm using PDFBox 1.8.8 if that matters. In the meantime, I'll 
>> play around with what you provided and see if I can get it to work.
> 
> yes, that matters - my code worked with 1.8.11. The fact that a widget 
> annotation was treated as a checkbox in 1.8.8 (and earlier) was a bug which 
> has been resolved in 1.8.9 onwards. See PDFBOX-2617
> 
> BR
> Maruan
> 
>> 
>> 
>> 
>> -----Original Message-----
>> From: Maruan Sahyoun [mailto:[email protected]]
>> Sent: Monday, March 28, 2016 3:30 PM
>> To: [email protected]
>> Subject: Re: How to bind distinct OnValues for checkbox group?
>> 
>> Hi,
>> 
>> here you go.
>> 
>> 
>>              PDDocument document = PDDocument.load("form_b122a-2.pdf");
>>              PDAcroForm form = document.getDocumentCatalog().getAcroForm();
>>              PDField field = form.getField("CheckBox16");
>>              PDAnnotationWidget widget = (PDAnnotationWidget) 
>> field.getKids().get(1);
>>              
>>              // get the fields normal appearances i.e. the options to be 
>> selected
>>              Map<String,PDAppearanceStream> normalAppearances = 
>> widget.getAppearance().getNormalAppearance();
>>              
>>              // Print out the current entries. There are two options
>>              // On and Off
>>              System.out.println(normalAppearances);
>> 
>>              // Add a new entry with the desired value copying over the 
>>              // appearance stream of the to be 'renamed' entry 
>>              normalAppearances.put("Yes",normalAppearances.get("On"));
>>              normalAppearances.remove("On");
>> 
>>              // Print out the new entries. There are two options
>>              // Yes and Off
>>              System.out.println(normalAppearances);
>> 
>>              document.save("form_b122a-2-pdfbox.pdf");
>>              document.close();
>> 
>> 
>> BR
>> Maruan
>> 
>>> Am 28.03.2016 um 15:14 schrieb Wojack, Robert (USTP) 
>>> <[email protected]>:
>>> 
>>> Yes. It is a publicly available PDF:
>>> 
>>>     http://www.uscourts.gov/file/18792/download
>>> 
>>> 
>>> Go to the last page (pg9) and click the No/Yes checkboxes for line 43. You 
>>> will see the behavior where each box is checked or unchecked regardless of 
>>> which one is actually clicked.
>>> 
>>> Thanks in advance for taking a look at this.
>>> 
>>> 
>>> 
>>>     
>>> 
>>> -----Original Message-----
>>> From: Maruan Sahyoun [mailto:[email protected]]
>>> Sent: Saturday, March 26, 2016 7:58 AM
>>> To: [email protected]
>>> Subject: Re: How to bind distinct OnValues for checkbox group?
>>> 
>>> Hi,
>>> 
>>> is it possible to share the PDF?
>>> 
>>> BR
>>> Maruan
>>> 
>>>> Am 25.03.2016 um 19:02 schrieb Wojack, Robert (USTP) 
>>>> <[email protected]>:
>>>> 
>>>> They are two distinct checkboxes within a radio collection. The problem is 
>>>> they both have their onValue set to "On". I need to set the onValue for 
>>>> one of them to something else ("Off").
>>>> 
>>>> Your code has given me some ideas, but so far, I haven't been able to 
>>>> adequately solve it.
>>>> 
>>>> Thanks,
>>>> 
>>>> Bob
>>>> 
>>>> -----Original Message-----
>>>> From: Maruan Sahyoun [mailto:[email protected]]
>>>> Sent: Thursday, March 24, 2016 6:16 AM
>>>> To: [email protected]
>>>> Subject: Re: How to bind distinct OnValues for checkbox group?
>>>> 
>>>> Hi,
>>>> 
>>>> are you sure that these are two distinct fields? If yes, you can set 
>>>> the On value - using 1.8.x - with
>>>> 
>>>> PDAnnotationWidget widget = field.getWidget() PDAppearanceDictionary 
>>>> apDictionary = widget.getAppearance(); PDAppearanceEntry 
>>>> normalAppearance = apDictionary.getNormalAppearance();
>>>> 
>>>> // to get the current values
>>>> Map<String,PDAppearanceStream> appearanceMap = 
>>>> apDictionary.getNormalAppearance();
>>>> 
>>>> // to set the values
>>>> apDictionary.setNormalAppearance(Map<String,PDAppearanceStream>);
>>>> 
>>>> 
>>>> Haven't tested that code but should give you an idea.
>>>> 
>>>> BR
>>>> Maruan
>>>> 
>>>> 
>>>> 
>>>>> Am 23.03.2016 um 16:51 schrieb Wojack, Robert (USTP) 
>>>>> <[email protected]>:
>>>>> 
>>>>> We have a client that provides us with interactive PDF forms for our app 
>>>>> to populate fields with user data. The problem is the client sometimes 
>>>>> provides us forms with typos and mistakes and is not responsive about 
>>>>> fixing them.
>>>>> 
>>>>> In this case, we are given an interactive PDF form that has a pair of 
>>>>> Yes/No checkboxes. Unfortunately, when creating the PDF, the client bound 
>>>>> both checkboxes to the same "On" value. As a result, when a user checks a 
>>>>> box, both of them get checked (additionally, when a user unchecks a box, 
>>>>> they both become unchecked).
>>>>> 
>>>>> I can use PDFBox to open the file, find the PDCheckbox object in question 
>>>>> and list their On and Off values, but I can't figure out how to update 
>>>>> the bindings to distinct values. Is it possible to do this in PDFBox? If 
>>>>> so, can someone please provide some guidance?
>>>>> 
>>>>> We are using PDFBox 1.8.8. We are not positioned to upgrade to 2.0.0.
>>>>> 
>>>>> Thanks
>>>>> 
>>>>> 
>>>>> Bob Wojack
>>>>> CSRA International, Inc.
>>>>> Onsite Contractor for the Department of Justice Senior Tech Lead US 
>>>>> Trustee Program
>>>>> Onsite Email Address:     
>>>>> [email protected]<mailto:[email protected]>
>>>>> Onsite Phone Number:    TBD
>>>>> Cell#:                              (301)910-9975
>>>>> 
>>>> 
>>>> 
>>>> --------------------------------------------------------------------
>>>> - To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>>> 
>>>> 
>>>> 
>>>> --------------------------------------------------------------------
>>>> - To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>>> 
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>> 
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to