pdfbox-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From til...@apache.org
Subject svn commit: r1762167 - in /pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane: FontEncodingPaneController.java FontEncodingView.java SimpleFont.java Type0Font.java Type3Font.java
Date Sun, 25 Sep 2016 08:52:57 GMT
Author: tilman
Date: Sun Sep 25 08:52:57 2016
New Revision: 1762167

URL: http://svn.apache.org/viewvc?rev=1762167&view=rev
Log:
PDFBOX-2941: show font rendering (copy rev 1754152, 1754315 and 1754781 from trunk)

Added:
    pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type3Font.java
  (with props)
Modified:
    pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/FontEncodingPaneController.java
    pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/FontEncodingView.java
    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

Modified: pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/FontEncodingPaneController.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/FontEncodingPaneController.java?rev=1762167&r1=1762166&r2=1762167&view=diff
==============================================================================
--- pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/FontEncodingPaneController.java
(original)
+++ pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/FontEncodingPaneController.java
Sun Sep 25 08:52:57 2016
@@ -16,19 +16,47 @@
 
 package org.apache.pdfbox.debugger.fontencodingpane;
 
+import java.awt.geom.GeneralPath;
+import java.awt.geom.Rectangle2D;
 import java.io.IOException;
 import javax.swing.JPanel;
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.PDResources;
-import org.apache.pdfbox.pdmodel.font.PDCIDFontType2;
 import org.apache.pdfbox.pdmodel.font.PDFont;
 import org.apache.pdfbox.pdmodel.font.PDSimpleFont;
 import org.apache.pdfbox.pdmodel.font.PDType0Font;
+import org.apache.pdfbox.pdmodel.font.PDType3Font;
 
-interface FontPane
+abstract class FontPane
 {
-    JPanel getPanel();
+    abstract JPanel getPanel();
+
+    /**
+     * Calculate vertical bounds common to all rendered glyphs.
+     *
+     * @param tableData
+     * @param glyphIndex the table index that has glyphs.
+     * @return an array with two elements: min lower bound (but max 0), and max upper bound
(but min
+     * 0).
+     */
+    double[] getYBounds(Object[][] tableData, int glyphIndex)
+    {
+        double minY = 0;
+        double maxY = 0;
+        for (Object[] aTableData : tableData)
+        {
+            GeneralPath path = (GeneralPath) aTableData[glyphIndex];
+            Rectangle2D bounds2D = path.getBounds2D();
+            if (bounds2D.isEmpty())
+            {
+                continue;
+            }
+            minY = Math.min(minY, bounds2D.getMinY());
+            maxY = Math.max(maxY, bounds2D.getMaxY());
+        }
+        return new double[]{minY, maxY};
+    }
 }
 
 /**
@@ -52,14 +80,17 @@ public class FontEncodingPaneController
         try
         {
             PDFont font = resources.getFont(fontName);
-            if (font instanceof PDSimpleFont)
+            if (font instanceof PDType3Font)
+            {
+                fontPane = new Type3Font((PDType3Font) font);
+            }
+            else if (font instanceof PDSimpleFont)
             {
                 fontPane = new SimpleFont((PDSimpleFont) font);
             }
-            else if (font instanceof PDType0Font
-                    && ((PDType0Font) font).getDescendantFont() instanceof PDCIDFontType2)
+            else if (font instanceof PDType0Font)
             {
-                fontPane = new Type0Font((PDCIDFontType2) ((PDType0Font) font).getDescendantFont(),
font);
+                fontPane = new Type0Font(((PDType0Font) font).getDescendantFont(), (PDType0Font)
font);
             }
         }
         catch (IOException e)

Modified: pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/FontEncodingView.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/FontEncodingView.java?rev=1762167&r1=1762166&r2=1762167&view=diff
==============================================================================
--- pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/FontEncodingView.java
(original)
+++ pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/FontEncodingView.java
Sun Sep 25 08:52:57 2016
@@ -20,10 +20,17 @@ import java.awt.Color;
 import java.awt.Component;
 import java.awt.Dimension;
 import java.awt.Font;
+import java.awt.Graphics2D;
 import java.awt.GridBagConstraints;
 import java.awt.GridBagLayout;
+import java.awt.Rectangle;
+import java.awt.RenderingHints;
+import java.awt.geom.GeneralPath;
+import java.awt.geom.Rectangle2D;
+import java.awt.image.BufferedImage;
 import java.util.Iterator;
 import java.util.Map;
+import javax.swing.ImageIcon;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
@@ -33,6 +40,7 @@ import javax.swing.table.TableCellRender
 
 /**
  * @author Khyrul Bashar
+ * @author Tilman Hausherr
  * A class that creates the UI for font encoding pane.
  */
 class FontEncodingView
@@ -45,10 +53,11 @@ class FontEncodingView
      * @param headerAttributes Map<String, String> instance which contains info for
showing in header
      *                         panel. Here keys will be info type.
      * @param columnNames String array containing the columns name.
+     * @param yBounds min low and max high bound of all glyphs.
      */
-    FontEncodingView(Object[][] tableData, Map<String, String> headerAttributes, String[]
columnNames)
+    FontEncodingView(Object[][] tableData, Map<String, String> headerAttributes, String[]
columnNames, double[] yBounds)
     {
-        createView(getHeaderPanel(headerAttributes), getTable(tableData, columnNames));
+        createView(getHeaderPanel(headerAttributes), getTable(tableData, columnNames, yBounds));
     }
 
     private void createView(JPanel headerPanel, JTable table)
@@ -78,11 +87,11 @@ class FontEncodingView
         panel.add(scrollPane, gbc);
     }
 
-    private JTable getTable(Object[][] tableData, String[] columnNames)
+    private JTable getTable(Object[][] tableData, String[] columnNames, double[] yBounds)
     {
         JTable table = new JTable(tableData, columnNames);
         table.setRowHeight(40);
-        table.setDefaultRenderer(Object.class, new GlyphCellRenderer());
+        table.setDefaultRenderer(Object.class, new GlyphCellRenderer(yBounds));
         return table;
     }
 
@@ -95,7 +104,6 @@ class FontEncodingView
             Iterator<String> keys = attributes.keySet().iterator();
             int row = 0;
             while (keys.hasNext())
-
             {
                 String key = keys.next();
                 JLabel encodingNameLabel = new JLabel(key + ": " + attributes.get(key));
@@ -108,7 +116,6 @@ class FontEncodingView
                 gbc.anchor = GridBagConstraints.LINE_START;
 
                 headerPanel.add(encodingNameLabel, gbc);
-
             }
         }
         return headerPanel;
@@ -121,14 +128,34 @@ class FontEncodingView
 
     private static final class GlyphCellRenderer implements TableCellRenderer
     {
+        private final double[] yBounds;
+
+        private GlyphCellRenderer(double[] yBounds)
+        {
+            this.yBounds = yBounds;
+        }
 
         @Override
-        public Component getTableCellRendererComponent(JTable jTable, Object o, boolean b,
boolean b1, int i, int i1)
+        public Component getTableCellRendererComponent(JTable jTable, Object o, boolean b,
boolean b1, int row, int col)
         {
+            if (o instanceof GeneralPath)
+            {
+                GeneralPath path = (GeneralPath) o;
+                Rectangle2D bounds2D = path.getBounds2D();
+                if (bounds2D.isEmpty())
+                {
+                    JLabel label = new JLabel(SimpleFont.NO_GLYPH, SwingConstants.CENTER);
+                    label.setFont(new Font(Font.SANS_SERIF, Font.PLAIN, 25));
+                    label.setForeground(Color.RED);
+                    return label;
+                }
+                Rectangle cellRect = jTable.getCellRect(row, col, false);
+                BufferedImage bim = renderGlyph(path, bounds2D, cellRect);
+                return new JLabel(new ImageIcon(bim));
+            }
             if (o != null)
             {
-                JLabel label = new JLabel(o.toString());
-                label.setHorizontalAlignment(SwingConstants.CENTER);
+                JLabel label = new JLabel(o.toString(), SwingConstants.CENTER);
                 label.setFont(new Font(Font.SANS_SERIF, Font.PLAIN, 25));
                 if (SimpleFont.NO_GLYPH.equals(o) || ".notdef".equals(o))
                 {
@@ -139,7 +166,36 @@ class FontEncodingView
             }
             return new JLabel();
         }
+
+        private BufferedImage renderGlyph(GeneralPath path, Rectangle2D bounds2D, Rectangle
cellRect)
+        {
+            BufferedImage bim = new BufferedImage((int) cellRect.getWidth(), (int) cellRect.getHeight(),
BufferedImage.TYPE_INT_RGB);
+            Graphics2D g = (Graphics2D) bim.getGraphics();
+            g.setBackground(Color.white);
+            g.clearRect(0, 0, bim.getWidth(), bim.getHeight());
+
+            double scale = 1 / ((yBounds[1] - yBounds[0]) / cellRect.getHeight());
+
+            // flip
+            g.scale(1, -1);
+            g.translate(0, -bim.getHeight());
+
+            // horizontal center
+            g.translate((cellRect.getWidth() - bounds2D.getWidth() * scale) / 2, 0);
+
+            // scale from the glyph to the cell
+            g.scale(scale, scale);
+
+            // Adjust for negative y min bound
+            g.translate(0, -yBounds[0]);
+
+            g.setColor(Color.black);
+            g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
+            g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
+            g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+            g.fill(path);
+            g.dispose();
+            return bim;
+        }
     }
 }
-
-

Modified: pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/SimpleFont.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/SimpleFont.java?rev=1762167&r1=1762166&r2=1762167&view=diff
==============================================================================
--- pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/SimpleFont.java
(original)
+++ pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/SimpleFont.java
Sun Sep 25 08:52:57 2016
@@ -16,21 +16,23 @@
 
 package org.apache.pdfbox.debugger.fontencodingpane;
 
+import org.apache.pdfbox.pdmodel.font.PDSimpleFont;
+import org.apache.pdfbox.pdmodel.font.PDVectorFont;
+
+import javax.swing.JPanel;
 import java.io.IOException;
 import java.util.LinkedHashMap;
 import java.util.Map;
-import javax.swing.JPanel;
-import org.apache.pdfbox.pdmodel.font.PDSimpleFont;
 
 /**
  * @author Khyrul Bashar
  * A class that shows the glyph table along with unicode characters for SimpleFont.
  */
-class SimpleFont implements FontPane
+class SimpleFont extends FontPane
 {
-    public static final String NO_GLYPH = "No glyph";
-    private int totalAvailableGlyph = 0;
+    public static final String NO_GLYPH = "None";
     private final FontEncodingView view;
+    private int totalAvailableGlyph = 0;
 
     /**
      * Constructor.
@@ -40,38 +42,51 @@ class SimpleFont implements FontPane
     SimpleFont(PDSimpleFont font) throws IOException
     {
         Object[][] tableData = getGlyphs(font);
+        
+        double[] yBounds = getYBounds(tableData, 3);
 
         Map<String, String> attributes = new LinkedHashMap<String, String>();
-        attributes.put("Encoding", getEncodingName(font));
         attributes.put("Font", font.getName());
-        attributes.put("Glyph count", Integer.toString(totalAvailableGlyph));
+        attributes.put("Encoding", getEncodingName(font));
+        attributes.put("Glyphs", Integer.toString(totalAvailableGlyph));
 
-        view = new FontEncodingView(tableData, attributes, new String[] {"Code", "Glyph Name","Unicode
Character"});
+        view = new FontEncodingView(tableData, attributes, 
+                new String[] {"Code", "Glyph Name", "Unicode Character", "Glyph"}, yBounds);
     }
 
     private Object[][] getGlyphs(PDSimpleFont font) throws IOException
     {
-        Object[][] glyphs = new Object[256][3];
+        Object[][] glyphs = new Object[256][4];
 
         for (int index = 0; index <= 255; index++)
         {
             glyphs[index][0] = index;
             if (font.getEncoding().contains(index))
             {
-                glyphs[index][1] = font.getEncoding().getName(index);
+                String glyphName = font.getEncoding().getName(index);
+                glyphs[index][1] = glyphName;
                 glyphs[index][2] = font.toUnicode(index);
+                if (font instanceof PDVectorFont)
+                {
+                    // using names didn't work with the file from PDFBOX-3445
+                    glyphs[index][3] = ((PDVectorFont) font).getPath(index);
+                }
+                else
+                {
+                    glyphs[index][3] = font.getPath(glyphName);
+                }
                 totalAvailableGlyph++;
             }
             else
             {
                 glyphs[index][1] = NO_GLYPH;
                 glyphs[index][2] = NO_GLYPH;
+                glyphs[index][3] = font.getPath(".notdef");
             }
         }
         return glyphs;
     }
 
-
     private String getEncodingName(PDSimpleFont font)
     {
         return font.getEncoding().getClass().getSimpleName();

Modified: pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type0Font.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type0Font.java?rev=1762167&r1=1762166&r2=1762167&view=diff
==============================================================================
--- pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type0Font.java
(original)
+++ pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type0Font.java
Sun Sep 25 08:52:57 2016
@@ -16,49 +16,98 @@
 
 package org.apache.pdfbox.debugger.fontencodingpane;
 
-import java.awt.Dimension;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import javax.swing.JPanel;
 import org.apache.pdfbox.cos.COSBase;
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.cos.COSStream;
 import org.apache.pdfbox.io.IOUtils;
-import org.apache.pdfbox.pdmodel.font.PDCIDFontType2;
+import org.apache.pdfbox.pdmodel.font.PDCIDFont;
 import org.apache.pdfbox.pdmodel.font.PDFont;
+import org.apache.pdfbox.pdmodel.font.PDType0Font;
+
+import javax.swing.JPanel;
+import java.awt.Dimension;
+import java.awt.geom.GeneralPath;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.LinkedHashMap;
+import java.util.Map;
 
 /**
  * @author Khyrul Bashar
  * A class that shows the CIDToGID table along with unicode characters for Type0Fonts when
descendent
  * font is of type PDCIDFontType2.
  */
-class Type0Font implements FontPane
+class Type0Font extends FontPane
 {
-    private FontEncodingView view;
-
+    public static final String NO_GLYPH = "No glyph";
+    private final FontEncodingView view;
+    private int totalAvailableGlyph = 0;
+    
     /**
      * Constructor.
      * @param descendantFont PDCIDFontType2 instance.
      * @param parentFont PDFont instance.
      * @throws IOException If fails to parse cidtogid map.
      */
-    Type0Font(PDCIDFontType2 descendantFont, PDFont parentFont) throws IOException
+    Type0Font(PDCIDFont descendantFont, PDType0Font parentFont) throws IOException
     {
         Object[][] cidtogid = readCIDToGIDMap(descendantFont, parentFont);
         if (cidtogid != null)
         {
             Map<String, String> attributes = new LinkedHashMap<String, String>();
             attributes.put("Font", descendantFont.getName());
-            attributes.put("CID count", Integer.toString(cidtogid.length));
+            attributes.put("CIDs", Integer.toString(cidtogid.length));
 
-            view = new FontEncodingView(cidtogid, attributes, new String[]{"CID", "GID",
"Unicode Character"});
+            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));
+            
+            view = new FontEncodingView(tab, attributes, 
+                    new String[]{"Code", "CID", "GID", "Unicode Character", "Glyph"}, getYBounds(tab,
4));
         }
     }
 
-    private Object[][] readCIDToGIDMap(PDCIDFontType2 font, PDFont parentFont) throws IOException
+    private Object[][] readMap(PDCIDFont descendantFont, PDType0Font parentFont) throws IOException
+    {
+        int codes = 0;
+        for (int code = 0; code < 65535; ++code)
+        {
+            if (descendantFont.hasGlyph(code))
+            {
+                ++codes;
+            }
+        }
+        Object[][] tab = new Object[codes][5];
+        int index = 0;
+        for (int code = 0; code < 65535; ++code)
+        {
+            if (descendantFont.hasGlyph(code))
+            {
+                tab[index][0] = code;
+                tab[index][1] = descendantFont.codeToCID(code);
+                tab[index][2] = descendantFont.codeToGID(code);
+                tab[index][3] = parentFont.toUnicode(code);
+                GeneralPath path = descendantFont.getPath(code);
+                tab[index][4] = path;
+                if (!path.getBounds2D().isEmpty())
+                {
+                    ++totalAvailableGlyph;
+                }
+                ++index;
+            }
+        }
+        return tab;
+    }
+
+    private Object[][] readCIDToGIDMap(PDCIDFont font, PDFont parentFont) throws IOException
     {
         Object[][] cid2gid = null;
         COSDictionary dict = font.getCOSObject();
@@ -71,7 +120,7 @@ class Type0Font implements FontPane
             byte[] mapAsBytes = IOUtils.toByteArray(is);
             IOUtils.closeQuietly(is);
             int numberOfInts = mapAsBytes.length / 2;
-            cid2gid = new Object[numberOfInts][3];
+            cid2gid = new Object[numberOfInts][4];
             int offset = 0;
             for (int index = 0; index < numberOfInts; index++)
             {
@@ -82,14 +131,18 @@ class Type0Font implements FontPane
                 {
                     cid2gid[index][2] = parentFont.toUnicode(index);
                 }
+                GeneralPath path = font.getPath(index);
+                cid2gid[index][3] = path;
+                if (!path.getBounds2D().isEmpty())
+                {
+                    ++totalAvailableGlyph;
+                }
                 offset += 2;
             }
         }
         return cid2gid;
     }
 
-
-
     @Override
     public JPanel getPanel()
     {
@@ -101,4 +154,4 @@ class Type0Font implements FontPane
         panel.setPreferredSize(new Dimension(300, 500));
         return panel;
     }
-}
\ No newline at end of file
+}

Added: pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type3Font.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type3Font.java?rev=1762167&view=auto
==============================================================================
--- pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type3Font.java
(added)
+++ pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type3Font.java
Sun Sep 25 08:52:57 2016
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2015 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.pdfbox.debugger.fontencodingpane;
+
+import org.apache.pdfbox.pdmodel.font.PDSimpleFont;
+import org.apache.pdfbox.pdmodel.font.PDType3Font;
+
+import javax.swing.JPanel;
+import java.io.IOException;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * @author Khyrul Bashar
+ * A class that shows the glyph table along with unicode characters for SimpleFont.
+ */
+class Type3Font extends FontPane
+{
+    public static final String NO_GLYPH = "No glyph";
+    private final FontEncodingView view;
+    private int totalAvailableGlyph = 0;
+
+    /**
+     * Constructor.
+     * @param font PDSimpleFont instance.
+     * @throws IOException If fails to parse unicode characters.
+     */
+    Type3Font(PDType3Font font) throws IOException
+    {
+        Object[][] tableData = getGlyphs(font);
+
+        Map<String, String> attributes = new LinkedHashMap<String, String>();
+        attributes.put("Font", font.getName());
+        attributes.put("Encoding", getEncodingName(font));
+        attributes.put("Glyphs", Integer.toString(totalAvailableGlyph));
+
+        view = new FontEncodingView(tableData, attributes, new String[] {"Code", "Glyph Name",
"Unicode Character"}, null);
+    }
+
+    private Object[][] getGlyphs(PDType3Font font) throws IOException
+    {
+        Object[][] glyphs = new Object[256][3];
+
+        for (int index = 0; index <= 255; index++)
+        {
+            glyphs[index][0] = index;
+            if (font.getEncoding().contains(index))
+            {
+                glyphs[index][1] = font.getEncoding().getName(index);
+                glyphs[index][2] = font.toUnicode(index);
+                totalAvailableGlyph++;
+            }
+            else
+            {
+                glyphs[index][1] = NO_GLYPH;
+                glyphs[index][2] = NO_GLYPH;
+            }
+        }
+        return glyphs;
+    }
+
+    private String getEncodingName(PDSimpleFont font)
+    {
+        return font.getEncoding().getClass().getSimpleName();
+    }
+
+    @Override
+    public JPanel getPanel()
+    {
+        return view.getPanel();
+    }
+}

Propchange: pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type3Font.java
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message