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

Reply via email to