Author: tilman
Date: Fri Aug 28 04:06:33 2026
New Revision: 1937545
Log:
PDFBOX-6245: add test for 3654
Modified:
pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/pfb/PfbParserTest.java
Modified:
pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/pfb/PfbParserTest.java
==============================================================================
---
pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/pfb/PfbParserTest.java
Fri Aug 28 04:06:20 2026 (r1937544)
+++
pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/pfb/PfbParserTest.java
Fri Aug 28 04:06:33 2026 (r1937545)
@@ -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.apache.pdfbox.io.IOUtils;
@@ -98,6 +99,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