You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Tilman Hausherr (JIRA)" <ji...@apache.org> on 2019/03/01 09:59:00 UTC

[jira] [Updated] (PDFBOX-4478) Import XFDF stamp annotation has malformed appearance

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

Tilman Hausherr updated PDFBOX-4478:
------------------------------------
    Description: 
As reported by [~k.keggenhoff] in the user mailing list
{code}
            File pdfFile = new File("lorem_1.pdf");

            System.out.println("Load pdf into PDDocument: " + pdfFile);
            doc = PDDocument.load(pdfFile);
            System.out.println("Loaded pdf\n");

            File xfdfFile = new File("lorem.xfdf");
            System.out.println("\tLoad xfdf into FDFDocument: " + xfdfFile);
            fdf = FDFDocument.loadXFDF(xfdfFile);

            // Lookup with annotations exists
            List<FDFAnnotation> fdfAnnots = fdf.getCatalog().getFDF().getAnnotations();
            // add each annotation in the xfdf into the document
            for (FDFAnnotation fdfAnnot : fdfAnnots)
            {
                PDPage page = doc.getPage(fdfAnnot.getPage());
                List<PDAnnotation> pageAnnots = page.getAnnotations();
                annot = PDAnnotation.createAnnotation(fdfAnnot.getCOSObject());
                annot.setLocked(true);
                pageAnnots.add(annot);
            }
            System.out.println("\tAdded into PDF");
            fdf.close();

            doc.save("C:\\Users\\Tilman\\Downloads\\lorem_stamp_markup.pdf");
{code}
The result file doesn't open properly on Adobe Reader.

My first impression: The shading dictionary in the annotation is incomplete. The code in FDFAnnotationStamp.parseDictElement() is incomplete, possibly also the code in parseArrayElement.

  was:
{code}
            File pdfFile = new File("lorem_1.pdf");

            System.out.println("Load pdf into PDDocument: " + pdfFile);
            doc = PDDocument.load(pdfFile);
            System.out.println("Loaded pdf\n");

            File xfdfFile = new File("lorem.xfdf");
            System.out.println("\tLoad xfdf into FDFDocument: " + xfdfFile);
            fdf = FDFDocument.loadXFDF(xfdfFile);

            // Lookup with annotations exists
            List<FDFAnnotation> fdfAnnots = fdf.getCatalog().getFDF().getAnnotations();
            // add each annotation in the xfdf into the document
            for (FDFAnnotation fdfAnnot : fdfAnnots)
            {
                PDPage page = doc.getPage(fdfAnnot.getPage());
                List<PDAnnotation> pageAnnots = page.getAnnotations();
                annot = PDAnnotation.createAnnotation(fdfAnnot.getCOSObject());
                annot.setLocked(true);
                pageAnnots.add(annot);
            }
            System.out.println("\tAdded into PDF");
            fdf.close();

            doc.save("C:\\Users\\Tilman\\Downloads\\lorem_stamp_markup.pdf");
{code}
The result file doesn't open properly on Adobe Reader. The shading dictionary in the annotation is incomplete, and there are many warnings. The code in FDFAnnotationStamp.parseDictElement() is incomplete, possibly also the code in parseArrayElement.


> Import XFDF stamp annotation has malformed appearance
> -----------------------------------------------------
>
>                 Key: PDFBOX-4478
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-4478
>             Project: PDFBox
>          Issue Type: Bug
>          Components: PDModel
>    Affects Versions: 2.0.14
>            Reporter: Tilman Hausherr
>            Priority: Major
>              Labels: xfdf
>         Attachments: lorem.xfdf, lorem_1.pdf, lorem_3_merged.pdf
>
>
> As reported by [~k.keggenhoff] in the user mailing list
> {code}
>             File pdfFile = new File("lorem_1.pdf");
>             System.out.println("Load pdf into PDDocument: " + pdfFile);
>             doc = PDDocument.load(pdfFile);
>             System.out.println("Loaded pdf\n");
>             File xfdfFile = new File("lorem.xfdf");
>             System.out.println("\tLoad xfdf into FDFDocument: " + xfdfFile);
>             fdf = FDFDocument.loadXFDF(xfdfFile);
>             // Lookup with annotations exists
>             List<FDFAnnotation> fdfAnnots = fdf.getCatalog().getFDF().getAnnotations();
>             // add each annotation in the xfdf into the document
>             for (FDFAnnotation fdfAnnot : fdfAnnots)
>             {
>                 PDPage page = doc.getPage(fdfAnnot.getPage());
>                 List<PDAnnotation> pageAnnots = page.getAnnotations();
>                 annot = PDAnnotation.createAnnotation(fdfAnnot.getCOSObject());
>                 annot.setLocked(true);
>                 pageAnnots.add(annot);
>             }
>             System.out.println("\tAdded into PDF");
>             fdf.close();
>             doc.save("C:\\Users\\Tilman\\Downloads\\lorem_stamp_markup.pdf");
> {code}
> The result file doesn't open properly on Adobe Reader.
> My first impression: The shading dictionary in the annotation is incomplete. The code in FDFAnnotationStamp.parseDictElement() is incomplete, possibly also the code in parseArrayElement.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: dev-help@pdfbox.apache.org