[ 
https://issues.apache.org/jira/browse/PDFBOX-4617?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rosalind Douglas updated PDFBOX-4617:
-------------------------------------
    Description: 
Hello, thank you for all of your efforts in building and maintaining PDFBox. We 
use it extensively for parsing PDFs, programmatically setting values and 
flattening PDFs for print.

BUG: When we parse the attached PDF, the onvalues for the radio buttons are 0, 
1, 2, 3, 4, which are determined by PDButton.getOnValueForWidget. Later on, 
when we try to programmatically set the value of the radio buttons 
(PDField.setValue) using the above onvalues, we receive this error:
{code:java}
2019-07-31 08:59:36 ERROR (Prism.java:3744)- STACK: 
java.lang.IllegalArgumentException: value '1' is not a valid option for the 
field radio1, valid values are: [no, yes] and Off at 
org.apache.pdfbox.pdmodel.interactive.form.PDButton.checkValue(PDButton.java:376)
 ~[pdfbox-2.0.16.jar:2.0.16] at 
org.apache.pdfbox.pdmodel.interactive.form.PDButton.setValue(PDButton.java:158) 
~[pdfbox-2.0.16.jar:2.0.16]
{code}
The radio buttons all have the same name, and two of them have the same choice 
value. We would expect it to behave like Adobe DC, which allows the user to 
select any of the buttons regardless of whether they have the same choice or 
not. I am on PDFBox 2.0.16.

PROPOSED FIX: 

This might be a regression caused by PDFBOX-3391. In our code, we have 
overridden the PDButton.setValue method so that it always invokes 
updateByValue(value) rather than sometimes using updateByOption(value). Here is 
the code that works for us, from PDButton.setValue(String value):

 
{code:java}
@Override public void setValue(String value) throws IOException { 
checkValue(value); 
updateByValue(value); 
applyChange(); }
{code}
 

One caveat is that the change would probably break your PDFBOX-3391 fix, but 
perhaps there's some way to have them live side by side. I don't know very much 
about the other problem.

Thanks again,

Rosalind

 

 

  was:
Hello, thank you for all of your efforts in building and maintaining PDFBox. We 
use it extensively for parsing PDFs, programmatically setting values and 
flattening PDFs for print.

BUG: When we parse the attached PDF, the onvalues for the radio buttons are 0, 
1, 2, 3, 4, which are determined by PDButton.getOnValueForWidget. Later on, 
when we try to programmatically set the value of the radio buttons 
(PDField.setValue) using the above options, we receive this error:
{code:java}
2019-07-31 08:59:36 ERROR (Prism.java:3744)- STACK: 
java.lang.IllegalArgumentException: value '1' is not a valid option for the 
field radio1, valid values are: [no, yes] and Off at 
org.apache.pdfbox.pdmodel.interactive.form.PDButton.checkValue(PDButton.java:376)
 ~[pdfbox-2.0.16.jar:2.0.16] at 
org.apache.pdfbox.pdmodel.interactive.form.PDButton.setValue(PDButton.java:158) 
~[pdfbox-2.0.16.jar:2.0.16]
{code}
The radio buttons all have the same name, and two of them have the same choice 
value. We would expect it to behave like Adobe DC, which allows the user to 
select any of the buttons regardless of whether they have the same choice or 
not. I am on PDFBox 2.0.16.

PROPOSED FIX: 

This might be a regression caused by PDFBOX-3391. In our code, we have 
overridden the PDButton.setValue method so that it always invokes 
updateByValue(value) rather than sometimes using updateByOption(value). Here is 
the code that works for us, from PDButton.setValue(String value):

 
{code:java}
@Override public void setValue(String value) throws IOException { 
checkValue(value); 
updateByValue(value); 
applyChange(); }
{code}
 

One caveat is that the change would probably break your PDFBOX-3391 fix, but 
perhaps there's some way to have them live side by side. I don't know very much 
about the other problem.

Thanks again,

Rosalind

 

 


> PDButton.setValue and PDButton.getOnValueForWidget cannot handle radios with 
> duplicate names and choices
> --------------------------------------------------------------------------------------------------------
>
>                 Key: PDFBOX-4617
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-4617
>             Project: PDFBox
>          Issue Type: Bug
>          Components: AcroForm
>            Reporter: Rosalind Douglas
>            Priority: Major
>         Attachments: Radio buttons with duplicate names and choices.pdf
>
>
> Hello, thank you for all of your efforts in building and maintaining PDFBox. 
> We use it extensively for parsing PDFs, programmatically setting values and 
> flattening PDFs for print.
> BUG: When we parse the attached PDF, the onvalues for the radio buttons are 
> 0, 1, 2, 3, 4, which are determined by PDButton.getOnValueForWidget. Later 
> on, when we try to programmatically set the value of the radio buttons 
> (PDField.setValue) using the above onvalues, we receive this error:
> {code:java}
> 2019-07-31 08:59:36 ERROR (Prism.java:3744)- STACK: 
> java.lang.IllegalArgumentException: value '1' is not a valid option for the 
> field radio1, valid values are: [no, yes] and Off at 
> org.apache.pdfbox.pdmodel.interactive.form.PDButton.checkValue(PDButton.java:376)
>  ~[pdfbox-2.0.16.jar:2.0.16] at 
> org.apache.pdfbox.pdmodel.interactive.form.PDButton.setValue(PDButton.java:158)
>  ~[pdfbox-2.0.16.jar:2.0.16]
> {code}
> The radio buttons all have the same name, and two of them have the same 
> choice value. We would expect it to behave like Adobe DC, which allows the 
> user to select any of the buttons regardless of whether they have the same 
> choice or not. I am on PDFBox 2.0.16.
> PROPOSED FIX: 
> This might be a regression caused by PDFBOX-3391. In our code, we have 
> overridden the PDButton.setValue method so that it always invokes 
> updateByValue(value) rather than sometimes using updateByOption(value). Here 
> is the code that works for us, from PDButton.setValue(String value):
>  
> {code:java}
> @Override public void setValue(String value) throws IOException { 
> checkValue(value); 
> updateByValue(value); 
> applyChange(); }
> {code}
>  
> One caveat is that the change would probably break your PDFBOX-3391 fix, but 
> perhaps there's some way to have them live side by side. I don't know very 
> much about the other problem.
> Thanks again,
> Rosalind
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

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

Reply via email to