Author: tilman
Date: Sat Jun 13 14:16:39 2026
New Revision: 1935239
Log:
PDFBOX-6211: add test for 6172
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
==============================================================================
---
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
Sat Jun 13 14:14:09 2026 (r1935238)
+++
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
Sat Jun 13 14:16:39 2026 (r1935239)
@@ -32,6 +32,8 @@ import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.List;
+import org.apache.fontbox.ttf.OTFParser;
+import org.apache.fontbox.ttf.OpenTypeFont;
import org.apache.fontbox.ttf.TTFParser;
import org.apache.fontbox.ttf.TrueTypeCollection;
import org.apache.fontbox.ttf.TrueTypeFont;
@@ -531,4 +533,19 @@ class PDFontTest
assertEquals("\u0391 \u2126", text.trim());
}
}
+
+ // PDFBOX-6172: test that exception is thrown on otf font with CID and GID
not identical.
+ @Test
+ void testPDFBox6172() throws IOException
+ {
+ try (PDDocument document = new PDDocument())
+ {
+ InputStream is = new
FileInputStream("target/fonts/NotoSansSC-Regular.otf");
+ OpenTypeFont otf = new OTFParser().parse(new
RandomAccessReadBuffer(is));
+ Throwable t = assertThrows(IllegalStateException.class,
+ () -> PDType0Font.load(document, otf, false),
+ "should have thrown IllegalStateException");
+ assertEquals("CID and GID not identical: CID 628 != GID 372, use a
ttf font instead", t.getMessage());
+ }
+ }
}