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 2022/08/03 17:42:34 UTC
svn commit: r1903217 - /pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
Author: tilman
Date: Wed Aug 3 17:42:33 2022
New Revision: 1903217
URL: http://svn.apache.org/viewvc?rev=1903217&view=rev
Log:
PDFBOX-5484: add test
Modified:
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java?rev=1903217&r1=1903216&r2=1903217&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java Wed Aug 3 17:42:33 2022
@@ -17,11 +17,8 @@
package org.apache.pdfbox.pdmodel.font;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
+import java.awt.geom.Area;
+import java.awt.geom.GeneralPath;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
@@ -34,10 +31,12 @@ import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.List;
+
import org.apache.fontbox.ttf.TTFParser;
import org.apache.fontbox.ttf.TrueTypeCollection;
import org.apache.fontbox.ttf.TrueTypeFont;
import org.apache.fontbox.util.autodetect.FontFileFinder;
+
import org.apache.pdfbox.Loader;
import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.io.RandomAccessReadBuffer;
@@ -49,6 +48,11 @@ import org.apache.pdfbox.pdmodel.font.St
import org.apache.pdfbox.pdmodel.font.encoding.WinAnsiEncoding;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.apache.pdfbox.text.PDFTextStripper;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.Assumptions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
@@ -423,4 +427,22 @@ class PDFontTest
assertEquals(text + "\n" + text, extractedText.trim());
}
}
+
+ /**
+ * Test font with an unusual cmap table combination (0, 3).
+ *
+ * @throws IOException
+ */
+ @Test
+ void testPDFBox5484() throws IOException
+ {
+ File fontFile = new File("target/fonts", "PDFBOX-5484.ttf");
+ TrueTypeFont ttf = new TTFParser().parse(new RandomAccessReadBufferedFile(fontFile));
+ PDDocument doc = new PDDocument();
+ PDTrueTypeFont tr = PDTrueTypeFont.load(doc, ttf, WinAnsiEncoding.INSTANCE);
+ GeneralPath path1 = tr.getPath("oslash");
+ GeneralPath path2 = tr.getPath(248);
+ assertFalse(path2.getPathIterator(null).isDone()); // not empty
+ assertTrue(new Area(path1).equals(new Area(path2))); // assertEquals does not test equals()
+ }
}