[ 
https://issues.apache.org/jira/browse/PDFBOX-2617?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14737141#comment-14737141
 ] 

Ilya Sazonov commented on PDFBOX-2617:
--------------------------------------

I have refreshed pdfbox from 1.8.6 to 1.8.9 and it made 3 of my tests fail. So 
it wasn't a big deal for me, I have already worked around the issue by checking 
if PDCheckbox has kids and converting it to PDRadioCollection if it does. I 
know a workaround is not a nice way of doing things, but I'm planning to wait 
till 2.0 is released and then doing it properly. Don't worry about me, I got it 
covered :). But introducing breaking changes with a patch is still not a nice 
thing to do.

Changing the way how terminal fields are recognized in pdfbox seems pretty big 
to me. Totally worth of increasing minor version at least. Yes, a half of a 
year has passed and I'm the only guy complaining, so maybe it's ok this time, 
but I don't want to meet something similar in the future. I want to trust 
pdfbox, that's what I want to say :).

Also I honestly don't see how the changes <a 
href="https://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDFieldFactory.java?r1=1654480&r2=1654479&pathrev=1654480";>here</a>
 help with multiple occurrences of the same field in a pdf. But I understand I 
either have to make that workaround, or write code to walk through widget 
dictionaries and retrieve field values. If library has replaced 
PDRadioCollection with PDCheckbox, then PDCheckbox should have a method to get 
it's possible values, but it doesn't. Even in 2.0 . 

So, thank you for your answer, and please don't take my complaints personally, 
I'm not Linus Torvalds you know :). And if I'm wrong about having to retrieve 
field values manually, please correct me. It would be nice to know there's a 
nice way of doing it. If I wasn't clear about what I wanted and you want code, 
I can send it to you a little bit later.




> Group of Button fields treated as a Radio Button group
> ------------------------------------------------------
>
>                 Key: PDFBOX-2617
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-2617
>             Project: PDFBox
>          Issue Type: Bug
>          Components: AcroForm
>    Affects Versions: 1.8.8, 2.0.0
>         Environment: Windows 7, Eclipse, JRE 1.8.0_25
>            Reporter: Gilad Denneboom
>            Assignee: Maruan Sahyoun
>            Priority: Minor
>             Fix For: 1.8.9, 2.0.0
>
>         Attachments: test.pdf
>
>
> When creating a group of identical button fields PDFBox reads them as a group 
> of radio-button fields, with each widget as a check-box, which is incorrect.
> The main field has the class PDRadioCollection and each kid is a PDCheckbox.
> Run the following code on the attached file:
> PDDocument doc = PDDocument.load( new File("test.pdf") );
> PDAcroForm form = doc.getDocumentCatalog().getAcroForm();
> List<PDField> fields = form.getFields();
> for (PDField f: fields) {
>       System.out.println("Name:" + f.getFullyQualifiedName());
>       System.out.println("Type:" + f.getFieldType());
>       System.out.println("Class:" + f.getClass());
>       List<COSObjectable> kids = f.getKids();
>       if (kids!=null) {
>               for (COSObjectable c : kids) {
>                       System.out.println("Kid Class: " + c.getClass());       
>                                         
>               }
>                       
>       }
> }
> The results are:
> Name:Test
> Type:Btn
> Class:class org.apache.pdfbox.pdmodel.interactive.form.PDRadioCollection
> Kid Class: class org.apache.pdfbox.pdmodel.interactive.form.PDCheckbox
> Kid Class: class org.apache.pdfbox.pdmodel.interactive.form.PDCheckbox



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: dev-h...@pdfbox.apache.org

Reply via email to