Author: tilman
Date: Fri Aug 28 04:06:43 2026
New Revision: 1937546
Log:
PDFBOX-6245: add test for 3654
Modified:
pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/pfb/PfbParserTest.java
Modified:
pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/pfb/PfbParserTest.java
==============================================================================
---
pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/pfb/PfbParserTest.java
Fri Aug 28 04:06:33 2026 (r1937545)
+++
pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/pfb/PfbParserTest.java
Fri Aug 28 04:06:43 2026 (r1937546)
@@ -24,6 +24,7 @@ import java.nio.file.Paths;
import java.util.Arrays;
import org.apache.fontbox.encoding.BuiltInEncoding;
+import org.apache.fontbox.encoding.StandardEncoding;
import org.apache.fontbox.type1.Type1Font;
import org.junit.jupiter.api.Assertions;
@@ -97,6 +98,32 @@ class PfbParserTest
}
/**
+ * PDFBOX-3654: font with hex encoded binary segment.
+ *
+ * @throws IOException
+ */
+ @Test
+ void testPfbPDFBox3654() throws IOException
+ {
+ byte[] ba =
Files.readAllBytes(Paths.get("target/fonts/KIX-Barcode-Regular.pfb"));
+ Type1Font font = Type1Font.createWithSegments(Arrays.copyOfRange(ba,
0, 1039),
+ Arrays.copyOfRange(ba, 1039, 1039 + 26868));
+ Assertions.assertEquals("001.000", font.getVersion());
+ Assertions.assertEquals("KIX-Barcode-Regular", font.getFontName());
+ Assertions.assertEquals("KIX-Barcode-Regular", font.getFullName());
+ Assertions.assertEquals("KIX-Barcode", font.getFamilyName());
+ Assertions.assertEquals("", font.getNotice());
+ Assertions.assertFalse(font.isFixedPitch());
+ Assertions.assertFalse(font.isForceBold());
+ Assertions.assertEquals(0, font.getItalicAngle());
+ Assertions.assertEquals("Regular", font.getWeight());
+ Assertions.assertInstanceOf(StandardEncoding.class,
font.getEncoding());
+ Assertions.assertEquals(1039, font.getASCIISegment().length);
+ Assertions.assertEquals(26868, font.getBinarySegment().length);
+ Assertions.assertEquals(257, font.getCharStringsDict().size());
+ }
+
+ /**
* Test 0 length font.
*/
@Test