Author: tilman
Date: Fri Aug 29 12:19:53 2025
New Revision: 1928082

Log:
PDFBOX-2941: refactor / improve encoding name

Modified:
   
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/SimpleFont.java
   
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type0Font.java
   
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type3Font.java

Modified: 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/SimpleFont.java
==============================================================================
--- 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/SimpleFont.java
     Fri Aug 29 12:19:49 2025        (r1928081)
+++ 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/SimpleFont.java
     Fri Aug 29 12:19:53 2025        (r1928082)
@@ -102,9 +102,13 @@ class SimpleFont extends FontPane
         return glyphs;
     }
 
-    private String getEncodingName(PDSimpleFont font)
+    static String getEncodingName(PDSimpleFont font)
     {
-        return font.getEncoding().getClass().getSimpleName() + " / " +  
font.getEncoding().getEncodingName();
+        if (font.getEncoding() == null)
+        {
+            return "(null)";
+        }
+        return font.getClass().getSimpleName() + " / " + 
font.getEncoding().getEncodingName();
     }
 
     @Override

Modified: 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type0Font.java
==============================================================================
--- 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type0Font.java
      Fri Aug 29 12:19:49 2025        (r1928081)
+++ 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type0Font.java
      Fri Aug 29 12:19:53 2025        (r1928082)
@@ -52,26 +52,24 @@ class Type0Font extends FontPane
     Type0Font(PDCIDFont descendantFont, PDType0Font parentFont) throws 
IOException
     {
         Object[][] cidtogid = readCIDToGIDMap(descendantFont, parentFont);
+        Map<String, String> attributes = new LinkedHashMap<>();
+        attributes.put("Font", descendantFont.getName());
         if (cidtogid != null)
         {
-            Map<String, String> attributes = new LinkedHashMap<>();
-            attributes.put("Font", descendantFont.getName());
             attributes.put("CIDs", Integer.toString(cidtogid.length));
             attributes.put("Embedded", 
Boolean.toString(descendantFont.isEmbedded()));
-
+            attributes.put("Encoding", getEncodingName(parentFont));
             view = new FontEncodingView(cidtogid, attributes, 
                     new String[]{"CID", "GID", "Unicode Character", "Glyph"}, 
getYBounds(cidtogid, 3));
         }
         else
         {
             Object[][] tab = readMap(descendantFont, parentFont);
-            Map<String, String> attributes = new LinkedHashMap<>();
-            attributes.put("Font", descendantFont.getName());
             attributes.put("CIDs", Integer.toString(tab.length));
             attributes.put("Glyphs", Integer.toString(totalAvailableGlyph));
             attributes.put("Standard 14", 
Boolean.toString(parentFont.isStandard14()));
             attributes.put("Embedded", 
Boolean.toString(descendantFont.isEmbedded()));
-
+            attributes.put("Encoding", getEncodingName(parentFont));
             view = new FontEncodingView(tab, attributes, 
                     new String[]{"Code", "CID", "GID", "Unicode Character", 
"Glyph"}, getYBounds(tab, 4));
         }
@@ -154,4 +152,10 @@ class Type0Font extends FontPane
         panel.setPreferredSize(new Dimension(300, 500));
         return panel;
     }
+
+    private String getEncodingName(PDFont font)
+    {
+        String encodingName = 
font.getCOSObject().getNameAsString(COSName.ENCODING);
+        return encodingName == null ? 
font.getCOSObject().getClass().getSimpleName() : encodingName;
+    }
 }

Modified: 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type3Font.java
==============================================================================
--- 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type3Font.java
      Fri Aug 29 12:19:49 2025        (r1928081)
+++ 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type3Font.java
      Fri Aug 29 12:19:53 2025        (r1928082)
@@ -25,6 +25,7 @@ import java.util.Map;
 import javax.swing.JPanel;
 
 import org.apache.fontbox.util.BoundingBox;
+import static 
org.apache.pdfbox.debugger.fontencodingpane.SimpleFont.getEncodingName;
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.pdmodel.PDPage;
 import org.apache.pdfbox.pdmodel.PDPageContentStream;
@@ -195,11 +196,6 @@ class Type3Font extends FontPane
         }
     }
 
-    private String getEncodingName(PDType3Font font)
-    {
-        return font.getEncoding().getClass().getSimpleName() + " / " +  
font.getEncoding().getEncodingName();
-    }
-
     @Override
     public JPanel getPanel()
     {

Reply via email to