[
https://issues.apache.org/jira/browse/PDFBOX-3391?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15347960#comment-15347960
]
Scott Coldwell commented on PDFBOX-3391:
----------------------------------------
A related problem I've found: In the attached PDF the same radio buttons are on
pages 1 and 3. What I've found is that the Opt values are duplicated and there
is a separate index value (0 and 1) for each page the radio button resides.
The problem with this, if I set the value to "0" it selects a radio button on
page 1, if I set the value to 1 it selects a radio button on page 3. Unless
I'm misunderstanding something a form field should be able to have multiple
widgets on separate pages and setting a value on that field should update it
across all pages. All the text fields in the attached PDF function that way.
> PDButton.getOnValues seems to be using the wrong source for getting the
> allowed values
> --------------------------------------------------------------------------------------
>
> Key: PDFBOX-3391
> URL: https://issues.apache.org/jira/browse/PDFBOX-3391
> Project: PDFBox
> Issue Type: Improvement
> Components: AcroForm
> Affects Versions: 2.0.1
> Reporter: Scott Coldwell
> Assignee: Maruan Sahyoun
> Fix For: 2.0.3, 2.1.0
>
> Attachments: SF2817.pdf
>
>
> We are in the process of migrating from itext to pdfbox and noticed that an
> exception was being thrown when trying to set a radio button with
> PDField.setValue(). The values returned from PDButton.getOnValues() which is
> used by PDButton.checkValue() called from PDButton.setValue() are only
> returning 0,1 instead of what we had been using with itext. After
> investigating itext's source code and playing around with pdfbox I was able
> to get to what I believe are the appropriate allowed values by using the
> following code.
> {code}
> if (field instanceof PDButton)
> {
> final COSBase item = field.getCOSObject().getItem(COSName.OPT);
> if (item != null && item instanceof COSArray)
> {
> final COSArray optArray = (COSArray)item;
> for (int i = 0 ; i < optArray.size() ; i++)
> {
> // Each item in this array is an allowed value
> // optArray.getString(i);
> }
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]