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 2023/12/15 12:32:58 UTC
svn commit: r1914685 - /pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroFormTest.java
Author: tilman
Date: Fri Dec 15 12:32:58 2023
New Revision: 1914685
URL: http://svn.apache.org/viewvc?rev=1914685&view=rev
Log:
PDFBOX-5739: add test for 3347, based on SO question 36964496
Modified:
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroFormTest.java
Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroFormTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroFormTest.java?rev=1914685&r1=1914684&r2=1914685&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroFormTest.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroFormTest.java Fri Dec 15 12:32:58 2023
@@ -29,6 +29,8 @@ import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
import org.apache.pdfbox.Loader;
import org.apache.pdfbox.cos.COSDictionary;
@@ -44,6 +46,8 @@ import org.apache.pdfbox.pdmodel.font.PD
import org.apache.pdfbox.pdmodel.font.Standard14Fonts.FontName;
import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation;
import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationWidget;
+import org.apache.pdfbox.pdmodel.interactive.annotation.PDAppearanceDictionary;
+import org.apache.pdfbox.pdmodel.interactive.annotation.PDAppearanceEntry;
import org.apache.pdfbox.rendering.TestPDFToImage;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
@@ -367,6 +371,41 @@ class PDAcroFormTest
}
}
+ /**
+ * Test for names with invalid UTF-8.
+ *
+ * @throws IOException
+ * @throws URISyntaxException
+ */
+ @Test
+ void testPDFBox3347() throws IOException, URISyntaxException
+ {
+ String sourceUrl = "https://issues.apache.org/jira/secure/attachment/12968302/KYF%20211%20Best%C3%A4llning%202014.pdf";
+
+ try (PDDocument doc = Loader.loadPDF(
+ RandomAccessReadBuffer.createBufferFromStream(new URI(sourceUrl).toURL().openStream())))
+ {
+ PDField field = doc.getDocumentCatalog().getAcroForm().getField("Krematorier");
+ List<PDAnnotationWidget> widgets = field.getWidgets();
+ Set<String> set = new TreeSet<>();
+ for (PDAnnotationWidget annot : widgets)
+ {
+ PDAppearanceDictionary ap = annot.getAppearance();
+ PDAppearanceEntry normalAppearance = ap.getNormalAppearance();
+ Set<COSName> nameSet = normalAppearance.getSubDictionary().keySet();
+ assertTrue(nameSet.contains(COSName.Off));
+ for (COSName name : nameSet)
+ {
+ if (!name.equals(COSName.Off))
+ {
+ set.add(name.getName());
+ }
+ }
+ }
+ assertEquals("[Nynäshamn, Råcksta, Silverdal, Skogskrem, St Botvid, Storkällan]",
+ set.toString());
+ }
+ }
@AfterEach
public void tearDown() throws IOException