Author: tilman
Date: Fri Aug 28 04:06:20 2026
New Revision: 1937544

Log:
PDFBOX-6245: add test for 3654

Modified:
   
pdfbox/branches/2.0/fontbox/src/test/java/org/apache/fontbox/pfb/PfbParserTest.java

Modified: 
pdfbox/branches/2.0/fontbox/src/test/java/org/apache/fontbox/pfb/PfbParserTest.java
==============================================================================
--- 
pdfbox/branches/2.0/fontbox/src/test/java/org/apache/fontbox/pfb/PfbParserTest.java
 Fri Aug 28 04:04:26 2026        (r1937543)
+++ 
pdfbox/branches/2.0/fontbox/src/test/java/org/apache/fontbox/pfb/PfbParserTest.java
 Fri Aug 28 04:06:20 2026        (r1937544)
@@ -16,11 +16,14 @@
  */
 package org.apache.fontbox.pfb;
 
+import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+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.Assert;
@@ -90,6 +93,36 @@ public class PfbParserTest
     }
 
     /**
+     * PDFBOX-3654: font with hex encoded binary segment.
+     *
+     * @throws IOException 
+     */
+    @Test
+    public void testPfbPDFBox3654() throws IOException
+    {
+        File file = new File("target/fonts/KIX-Barcode-Regular.pfb");
+        InputStream is = new FileInputStream(file);
+        byte[] ba = new byte[(int) file.length()];
+        is.read(ba);
+        is.close();
+        Type1Font font = Type1Font.createWithSegments(Arrays.copyOfRange(ba, 
0, 1039), 
+                                  Arrays.copyOfRange(ba, 1039, 1039 + 26868));
+        Assert.assertEquals("001.000", font.getVersion());
+        Assert.assertEquals("KIX-Barcode-Regular", font.getFontName());
+        Assert.assertEquals("KIX-Barcode-Regular", font.getFullName());
+        Assert.assertEquals("KIX-Barcode", font.getFamilyName());
+        Assert.assertEquals("", font.getNotice());
+        Assert.assertFalse(font.isFixedPitch());
+        Assert.assertFalse(font.isForceBold());
+        Assert.assertEquals(0f, font.getItalicAngle(), 0);
+        Assert.assertEquals("Regular", font.getWeight());
+        Assert.assertTrue(font.getEncoding() instanceof StandardEncoding);
+        Assert.assertEquals(1039, font.getASCIISegment().length);
+        Assert.assertEquals(26868, font.getBinarySegment().length);
+        Assert.assertEquals(257, font.getCharStringsDict().size());
+    }
+
+    /**
      * Test 0 length font.
      */
     @Test(expected=IOException.class)

Reply via email to