[
https://issues.apache.org/jira/browse/PDFBOX-5546?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17638628#comment-17638628
]
Maruan Sahyoun commented on PDFBOX-5546:
----------------------------------------
could you add the sample PDFs as extra attachments please
> Issue with the index based RadioButton value selection.
> -------------------------------------------------------
>
> Key: PDFBOX-5546
> URL: https://issues.apache.org/jira/browse/PDFBOX-5546
> Project: PDFBox
> Issue Type: Bug
> Components: AcroForm
> Affects Versions: 2.0.27
> Reporter: Christian Appl
> Priority: Major
> Attachments: WEBPDF-1616.patch
>
>
> We encountered an issue with the index based selection of RadioButton values
> - in case an "Opt" Array (Export value) definition is present.
> *The issue: valid index selections are overwritten, when calling
> "constructAppearances()"*
> Location:
> {color:#000000}org.apache.pdfbox.pdmodel.interactive.form.PDButton{color}:
> When selecting an option via index - with activated "generateAppearances"
> flag - via "setValue(int)": The value (V) of the RadioButton field and the
> appearance states of it´s contained streams were updated accordingly and
> correctly.
> But when debugging I found that the following internal call to:
> applyChanges->constructAppearances, would override the correct values with
> erroneous ones that rather match the direct onState selection (without Opt
> array).
> Which lead to me implementing the hereby provided patch trying to address the
> issue.
> *Additonal observation: onValue name and index mismatch*
> When setting the Value V of the containing RadioButton field the current
> implementation assumed, that the name of the "onState" Stream would always
> match the index of the child in the kids/Opt array.
> I was able to create a document (using Adobe DC) that did contradict that
> assumption. Adobe DC allows selecting custom names for the Acroform "onState"
> names (and streams) in that case the index of the child may i.e. be 0, while
> the name of the "onState" stream is "Choice1", but using "Choice1" as the "V"
> value for the field will not lead to a valid/working result.
> In this patch you will also find a solution, that attempts to address that
> issue aswell.
> *Tests:*
> You will also find two tests in the patch, that summarize the behaviour I
> would assume to be correct.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]