You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2024/12/20 10:54:28 UTC

svn commit: r1922610 - in /pdfbox/trunk/pdfbox: pom.xml src/test/java/org/apache/pdfbox/pdfwriter/COSDocumentCompressionTest.java

Author: tilman
Date: Fri Dec 20 10:54:28 2024
New Revision: 1922610

URL: http://svn.apache.org/viewvc?rev=1922610&view=rev
Log:
PDFBOX-5927: add test

Modified:
    pdfbox/trunk/pdfbox/pom.xml
    pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdfwriter/COSDocumentCompressionTest.java

Modified: pdfbox/trunk/pdfbox/pom.xml
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/pom.xml?rev=1922610&r1=1922609&r2=1922610&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/pom.xml (original)
+++ pdfbox/trunk/pdfbox/pom.xml Fri Dec 20 10:54:28 2024
@@ -790,6 +790,19 @@
                             <sha512>995b25abc41bcb3e89f93d1495d4e178010c7dfbbdd55fed71de395d3798a83575b619c333a22386d441152f821debffd01c26494bef86cb35ef0d04e0198a3b</sha512>
                         </configuration>
                     </execution>
+                    <execution>
+                        <id>PDFBOX-5927</id>
+                        <phase>generate-test-resources</phase>
+                        <goals>
+                            <goal>wget</goal>
+                        </goals>
+                        <configuration>
+                            <url>https://issues.apache.org/jira/secure/attachment/13073586/SO79293670.pdf</url>
+                            <outputDirectory>${project.build.directory}/pdfs</outputDirectory>
+                            <outputFileName>PDFBOX-5927.pdf</outputFileName>
+                            <sha512>73cabf224a56cd7256262245d5edb79729401a7485e420a0d66c931bdb22cbd3a08eeaebf73b718fd68dc458cfd0008c168c234ae7827d62cb0448b0c36af1c5</sha512>
+                        </configuration>
+                    </execution>
                 </executions>
             </plugin>
         </plugins>

Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdfwriter/COSDocumentCompressionTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdfwriter/COSDocumentCompressionTest.java?rev=1922610&r1=1922609&r2=1922610&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdfwriter/COSDocumentCompressionTest.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdfwriter/COSDocumentCompressionTest.java Fri Dec 20 10:54:28 2024
@@ -16,6 +16,12 @@
  */
 package org.apache.pdfbox.pdfwriter;
 
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.pdfbox.Loader;
 import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.PDDocument;
@@ -28,14 +34,13 @@ import org.apache.pdfbox.pdmodel.encrypt
 import org.apache.pdfbox.pdmodel.font.PDType1Font;
 import org.apache.pdfbox.pdmodel.font.Standard14Fonts.FontName;
 import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation;
-import org.junit.jupiter.api.Test;
+import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm;
+import org.apache.pdfbox.pdmodel.interactive.form.PDCheckBox;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
-
-import java.io.File;
-import java.util.List;
-import java.util.Map;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.Test;
 
 /**
  * This test attempts to save different documents compressed, without causing errors, it also checks, whether the PDF is
@@ -258,4 +263,25 @@ class COSDocumentCompressionTest
         }
     }
 
+    /**
+     * Check that the bug from PDFBOX-5927 is fixed. This one caused a dictionary key to be written
+     * as an indirect object in an object stream.
+     *
+     * @throws IOException
+     */
+    @Test
+    void testPDFBox5927() throws IOException
+    {
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        try (PDDocument doc = Loader.loadPDF(new File("target/pdfs","PDFBOX-5927.pdf")))
+        {
+            doc.save(baos);
+        }
+        try (PDDocument doc = Loader.loadPDF(baos.toByteArray()))
+        {
+            PDAcroForm acroForm = doc.getDocumentCatalog().getAcroForm();
+            PDCheckBox cb = (PDCheckBox) acroForm.getField("chkPrivacy1");
+            assertTrue(cb.isChecked());
+        }
+    }
 }