You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by ss...@apache.org on 2016/07/26 09:49:04 UTC

svn commit: r1754095 - in /xmlgraphics/fop-pdf-images/trunk: src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java

Author: ssteiner
Date: Tue Jul 26 09:49:03 2016
New Revision: 1754095

URL: http://svn.apache.org/viewvc?rev=1754095&view=rev
Log:
FOP-2636: PDF with annotations won't upload to docusign

Modified:
    xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java
    xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java

Modified: xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java?rev=1754095&r1=1754094&r2=1754095&view=diff
==============================================================================
--- xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java (original)
+++ xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java Tue Jul 26 09:49:03 2016
@@ -634,7 +634,8 @@ public class PDFBoxAdapter {
                 //to guess the calculation order.
                 destAcroForm = new PDFDictionary(pdfDoc.getRoot());
             }
-            pdfDoc.registerObject(destAcroForm);
+            pdfDoc.assignObjectNumber(destAcroForm);
+            pdfDoc.addTrailerObject(destAcroForm);
             catalog.put(COSName.ACRO_FORM.getName(), destAcroForm);
         }
         PDFArray clonedFields = (PDFArray) destAcroForm.get(COSName.FIELDS.getName());

Modified: xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java?rev=1754095&r1=1754094&r2=1754095&view=diff
==============================================================================
--- xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java (original)
+++ xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java Tue Jul 26 09:49:03 2016
@@ -102,6 +102,7 @@ public class PDFBoxAdapterTestCase {
     private static final String Type1Subset3 = "test/resources/t1subset3.pdf";
     private static final String Type1Subset4 = "test/resources/t1subset4.pdf";
     protected static final String ROTATE = "test/resources/rotate.pdf";
+    private static final String ANNOT = "test/resources/annot.pdf";
     private static final String SHADING = "test/resources/shading.pdf";
     private static final String LINK = "test/resources/link.pdf";
     private static final String IMAGE = "test/resources/image.pdf";
@@ -175,7 +176,7 @@ public class PDFBoxAdapterTestCase {
 
     private String writeText(FontInfo fi, String pdf) throws IOException {
         PDDocument doc = PDDocument.load(new File(pdf));
-        PDPage page = (PDPage) doc.getDocumentCatalog().getPages().get(0);
+        PDPage page = doc.getDocumentCatalog().getPages().get(0);
         AffineTransform at = new AffineTransform();
         String c = getPDFBoxAdapter().createStreamFromPDFBoxPage(doc, page, pdf, at, fi, new Rectangle());
 //        PDResources sourcePageResources = page.findResources();
@@ -187,7 +188,7 @@ public class PDFBoxAdapterTestCase {
     }
 
     private COSDictionary getFont(PDDocument doc, String internalname) throws IOException {
-        PDPage page = (PDPage) doc.getDocumentCatalog().getPages().get(0);
+        PDPage page = doc.getDocumentCatalog().getPages().get(0);
         PDResources sourcePageResources = page.getResources();
         COSDictionary fonts = (COSDictionary)sourcePageResources.getCOSObject().getDictionaryObject(COSName.FONT);
         return (COSDictionary) fonts.getDictionaryObject(internalname);
@@ -305,7 +306,7 @@ public class PDFBoxAdapterTestCase {
         pdfpage.setDocument(pdfdoc);
         PDFBoxAdapter adapter = new PDFBoxAdapter(pdfpage, new HashMap(), new HashMap<Integer, PDFArray>());
         PDDocument doc = PDDocument.load(new File(ROTATE));
-        PDPage page = (PDPage) doc.getDocumentCatalog().getPages().get(0);
+        PDPage page = doc.getDocumentCatalog().getPages().get(0);
         AffineTransform at = new AffineTransform();
         Rectangle r = new Rectangle(0, 1650, 842000, 595000);
         String stream = adapter.createStreamFromPDFBoxPage(doc, page, "key", at, null, r);
@@ -324,7 +325,7 @@ public class PDFBoxAdapterTestCase {
         PDFBoxAdapter adapter = new PDFBoxAdapter(pdfpage, new HashMap(), new HashMap<Integer, PDFArray>());
         adapter.setCurrentMCID(5);
         PDDocument doc = PDDocument.load(new File(HELLOTagged));
-        PDPage page = (PDPage) doc.getDocumentCatalog().getPages().get(0);
+        PDPage page = doc.getDocumentCatalog().getPages().get(0);
         AffineTransform at = new AffineTransform();
         Rectangle r = new Rectangle(0, 1650, 842000, 595000);
         String stream = adapter.createStreamFromPDFBoxPage(doc, page, "key", at, null, r);
@@ -333,6 +334,26 @@ public class PDFBoxAdapterTestCase {
     }
 
     @Test
+    public void testAnnot() throws Exception {
+        PDFDocument pdfdoc = new PDFDocument("");
+        PDFPage pdfpage = new PDFPage(new PDFResources(pdfdoc), 0, r, r, r, r);
+        pdfpage.setDocument(pdfdoc);
+        pdfpage.setObjectNumber(1);
+        PDFBoxAdapter adapter = new PDFBoxAdapter(pdfpage, new HashMap(), new HashMap<Integer, PDFArray>());
+        PDDocument doc = PDDocument.load(new File(ANNOT));
+        PDPage page = doc.getDocumentCatalog().getPages().get(0);
+        AffineTransform at = new AffineTransform();
+        Rectangle r = new Rectangle(0, 1650, 842000, 595000);
+        ByteArrayOutputStream os = new ByteArrayOutputStream();
+        pdfdoc.output(os);
+        os.reset();
+        adapter.createStreamFromPDFBoxPage(doc, page, "key", at, null, r);
+        pdfdoc.outputTrailer(os);
+        Assert.assertTrue(os.toString("UTF-8").contains("/Fields ["));
+        doc.close();
+    }
+
+    @Test
     public void testLink() throws Exception {
         PDFDocument pdfdoc = new PDFDocument("");
         PDFPage pdfpage = new PDFPage(new PDFResources(pdfdoc), 0, r, r, r, r);
@@ -341,7 +362,7 @@ public class PDFBoxAdapterTestCase {
         Map<Integer, PDFArray> pageNumbers = new HashMap<Integer, PDFArray>();
         PDFBoxAdapter adapter = new PDFBoxAdapter(pdfpage, new HashMap(), pageNumbers);
         PDDocument doc = PDDocument.load(new File(LINK));
-        PDPage page = (PDPage) doc.getDocumentCatalog().getPages().get(0);
+        PDPage page = doc.getDocumentCatalog().getPages().get(0);
         AffineTransform at = new AffineTransform();
         Rectangle r = new Rectangle(0, 1650, 842000, 595000);
         String stream = adapter.createStreamFromPDFBoxPage(doc, page, "key", at, null, r);
@@ -363,7 +384,7 @@ public class PDFBoxAdapterTestCase {
         Map<Integer, PDFArray> pageNumbers = new HashMap<Integer, PDFArray>();
         PDFBoxAdapter adapter = new PDFBoxAdapter(pdfpage, new HashMap(), pageNumbers);
         PDDocument doc = PDDocument.load(new File(XFORM));
-        PDPage page = (PDPage) doc.getDocumentCatalog().getPages().get(0);
+        PDPage page = doc.getDocumentCatalog().getPages().get(0);
         AffineTransform at = new AffineTransform();
         Rectangle r = new Rectangle(0, 1650, 842000, 595000);
         adapter.createStreamFromPDFBoxPage(doc, page, "key", at, new FontInfo(), r);



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org