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()
{