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());
+ }
+ }
}