Author: tilman
Date: Fri Aug 29 12:19:49 2025
New Revision: 1928081
Log:
PDFBOX-2941: refactor / improve encoding name
Modified:
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/SimpleFont.java
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type0Font.java
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type3Font.java
Modified:
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/SimpleFont.java
==============================================================================
---
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/SimpleFont.java
Fri Aug 29 12:17:01 2025 (r1928080)
+++
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/SimpleFont.java
Fri Aug 29 12:19:49 2025 (r1928081)
@@ -24,6 +24,7 @@ import javax.swing.JPanel;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+
import org.apache.pdfbox.pdmodel.font.PDSimpleFont;
import org.apache.pdfbox.pdmodel.font.PDVectorFont;
@@ -110,9 +111,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/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type0Font.java
==============================================================================
---
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type0Font.java
Fri Aug 29 12:17:01 2025 (r1928080)
+++
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type0Font.java
Fri Aug 29 12:19:49 2025 (r1928081)
@@ -53,26 +53,24 @@ class Type0Font extends FontPane
Type0Font(PDCIDFont descendantFont, PDType0Font parentFont) throws
IOException
{
Object[][] cidtogid = readCIDToGIDMap(descendantFont, parentFont);
+ Map<String, String> attributes = new LinkedHashMap<String, String>();
+ attributes.put("Font", descendantFont.getName());
if (cidtogid != null)
{
- Map<String, String> attributes = new LinkedHashMap<String,
String>();
- 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<String,
String>();
- 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));
}
@@ -157,4 +155,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/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type3Font.java
==============================================================================
---
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type3Font.java
Fri Aug 29 12:17:01 2025 (r1928080)
+++
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type3Font.java
Fri Aug 29 12:19:49 2025 (r1928081)
@@ -24,6 +24,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;
@@ -197,11 +198,6 @@ class Type3Font extends FontPane
}
}
- private String getEncodingName(PDType3Font font)
- {
- return font.getEncoding().getClass().getSimpleName() + " / " +
font.getEncoding().getEncodingName();
- }
-
@Override
public JPanel getPanel()
{