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

Tilman Hausherr updated PDFBOX-3777:
------------------------------------
    Description: 
{code}
    public static void main(String[] args) throws IOException
    {
        PDDocument.load(new 
File("D1790B.pdf")).getDocumentCatalog().getAcroForm().getFields();
    }
{code}
throws
{code}
Exception in thread "main" java.lang.ClassCastException: 
org.apache.pdfbox.cos.COSDictionary cannot be cast to 
org.apache.pdfbox.cos.COSArray
        at 
org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm.getFields(PDAcroForm.java:368)
        at pdfboxpageimageextraction.PDFBOX3777.main(PDFBOX3777.java:20)
{code}
[~msahyoun] wrote in the mailing list
{quote}
the field definition in the AcroForm is wrong as the field root is defined as a 
dictionary and not as an array as it's required by the PDF spec.
...
I think we should fix that as Adobe Reader and another viewer I tested can open 
the form just fine. So we should do the same.
{quote}


  was:
              public static void main(String[] args) {
                              PDDocument pdDocument;
                              try {
                                             pdDocument = PDDocument.load(new 
File("D1790B.PDF"));
                              }
                              catch (Exception e) {
                                             throw new RuntimeException(e);
                              }
                              PDAcroForm pdAcroForm = 
pdDocument.getDocumentCatalog().getAcroForm();
                              if (pdAcroForm != null) {
                                             try {
                                                            List<PDField> 
acroFields = pdAcroForm.getFields();
                                                            List<PDField> 
pdFields = new ArrayList<PDField>();
                                                            for (PDField 
pdField : acroFields) {
                      // (modify fields)
                                                            }
                                                            
pdAcroForm.setFields(pdFields);
                                                            // flatten the 
document to get rid of the buttons
                                                            
pdAcroForm.flatten();
                                             }
                                             catch (IOException e) {
                                                            throw new 
RuntimeException(e);
                                             }
                              }
               }



> org.apache.pdfbox.cos.COSDictionary cannot be cast to 
> org.apache.pdfbox.cos.COSArray
> ------------------------------------------------------------------------------------
>
>                 Key: PDFBOX-3777
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-3777
>             Project: PDFBox
>          Issue Type: Bug
>          Components: AcroForm
>    Affects Versions: 2.0.5
>            Reporter: John Liston
>            Priority: Minor
>         Attachments: D1790B.PDF
>
>
> {code}
>     public static void main(String[] args) throws IOException
>     {
>         PDDocument.load(new 
> File("D1790B.pdf")).getDocumentCatalog().getAcroForm().getFields();
>     }
> {code}
> throws
> {code}
> Exception in thread "main" java.lang.ClassCastException: 
> org.apache.pdfbox.cos.COSDictionary cannot be cast to 
> org.apache.pdfbox.cos.COSArray
>       at 
> org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm.getFields(PDAcroForm.java:368)
>       at pdfboxpageimageextraction.PDFBOX3777.main(PDFBOX3777.java:20)
> {code}
> [~msahyoun] wrote in the mailing list
> {quote}
> the field definition in the AcroForm is wrong as the field root is defined as 
> a dictionary and not as an array as it's required by the PDF spec.
> ...
> I think we should fix that as Adobe Reader and another viewer I tested can 
> open the form just fine. So we should do the same.
> {quote}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

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

Reply via email to