[
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]