You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ja...@apache.org on 2016/08/10 14:26:41 UTC

svn commit: r1755755 - in /pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger: fontencodingpane/FontEncodingView.java fontencodingpane/SimpleFont.java fontencodingpane/Type0Font.java fontencodingpane/Type3Font.java pagepane/PagePane.java

Author: jahewson
Date: Wed Aug 10 14:26:40 2016
New Revision: 1755755

URL: http://svn.apache.org/viewvc?rev=1755755&view=rev
Log:
PDFBOX-2941: clean up the font encoding panel

Modified:
    pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/FontEncodingView.java
    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
    pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java

Modified: pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/FontEncodingView.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/FontEncodingView.java?rev=1755755&r1=1755754&r2=1755755&view=diff
==============================================================================
--- pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/FontEncodingView.java (original)
+++ pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/FontEncodingView.java Wed Aug 10 14:26:40 2016
@@ -16,6 +16,14 @@
 
 package org.apache.pdfbox.debugger.fontencodingpane;
 
+import javax.swing.BorderFactory;
+import javax.swing.ImageIcon;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.SwingConstants;
+import javax.swing.table.TableCellRenderer;
 import java.awt.Color;
 import java.awt.Component;
 import java.awt.Dimension;
@@ -30,13 +38,6 @@ 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;
-import javax.swing.JTable;
-import javax.swing.SwingConstants;
-import javax.swing.table.TableCellRenderer;
 
 /**
  * @author Khyrul Bashar
@@ -98,6 +99,7 @@ class FontEncodingView
     private JPanel getHeaderPanel(Map<String, String> attributes)
     {
         JPanel headerPanel = new JPanel(new GridBagLayout());
+        headerPanel.setBorder(BorderFactory.createEmptyBorder(10, 0, 5, 0));
 
         if (attributes != null)
         {
@@ -107,7 +109,8 @@ class FontEncodingView
             {
                 String key = keys.next();
                 JLabel encodingNameLabel = new JLabel(key + ": " + attributes.get(key));
-                encodingNameLabel.setFont(new Font(Font.MONOSPACED, Font.BOLD, 17));
+                encodingNameLabel.setFont(new Font(Font.DIALOG, Font.PLAIN, 16));
+                encodingNameLabel.setBorder(BorderFactory.createEmptyBorder(2, 0, 2, 0));
 
                 GridBagConstraints gbc = new GridBagConstraints();
                 gbc.gridx = 0;
@@ -145,22 +148,22 @@ class FontEncodingView
                 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);
+                    label.setFont(new Font(Font.DIALOG, Font.PLAIN, 16));
+                    label.setForeground(Color.GRAY);
                     return label;
                 }
                 Rectangle cellRect = jTable.getCellRect(row, col, false);
                 BufferedImage bim = renderGlyph(path, bounds2D, cellRect);
-                return new JLabel(new ImageIcon(bim));
+                return new JLabel(new ImageIcon(bim), SwingConstants.CENTER);
             }
             if (o != null)
             {
                 JLabel label = new JLabel(o.toString(), SwingConstants.CENTER);
-                label.setFont(new Font(Font.SANS_SERIF, Font.PLAIN, 25));
+                label.setFont(new Font(Font.DIALOG, Font.PLAIN, 16));
                 if (SimpleFont.NO_GLYPH.equals(o) || ".notdef".equals(o))
                 {
                     label.setText(o.toString());
-                    label.setForeground(Color.RED);
+                    label.setForeground(Color.GRAY);
                 }
                 return label;
             }

Modified: pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/SimpleFont.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/SimpleFont.java?rev=1755755&r1=1755754&r2=1755755&view=diff
==============================================================================
--- pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/SimpleFont.java (original)
+++ pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/SimpleFont.java Wed Aug 10 14:26:40 2016
@@ -16,12 +16,13 @@
 
 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;
-import org.apache.pdfbox.pdmodel.font.PDVectorFont;
 
 /**
  * @author Khyrul Bashar
@@ -29,9 +30,9 @@ import org.apache.pdfbox.pdmodel.font.PD
  */
 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.
@@ -45,9 +46,9 @@ class SimpleFont extends FontPane
         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", "Glyph"}, yBounds);

Modified: pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type0Font.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type0Font.java?rev=1755755&r1=1755754&r2=1755755&view=diff
==============================================================================
--- pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type0Font.java (original)
+++ pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type0Font.java Wed Aug 10 14:26:40 2016
@@ -16,13 +16,6 @@
 
 package org.apache.pdfbox.debugger.fontencodingpane;
 
-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;
-import javax.swing.JPanel;
 import org.apache.pdfbox.cos.COSBase;
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSName;
@@ -32,6 +25,14 @@ import org.apache.pdfbox.pdmodel.font.PD
 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
@@ -39,8 +40,8 @@ import org.apache.pdfbox.pdmodel.font.PD
  */
 class Type0Font extends FontPane
 {
-    private final FontEncodingView view;
     public static final String NO_GLYPH = "No glyph";
+    private final FontEncodingView view;
     private int totalAvailableGlyph = 0;
     
     /**
@@ -56,7 +57,7 @@ class Type0Font extends FontPane
         {
             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", "Glyph"}, getYBounds(cidtogid, 3));
@@ -66,8 +67,8 @@ class Type0Font extends FontPane
             Object[][] tab = readMap(descendantFont, parentFont);
             Map<String, String> attributes = new LinkedHashMap<String, String>();
             attributes.put("Font", descendantFont.getName());
-            attributes.put("CID count", Integer.toString(tab.length));
-            attributes.put("Glyph count", Integer.toString(totalAvailableGlyph));
+            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));

Modified: pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type3Font.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type3Font.java?rev=1755755&r1=1755754&r2=1755755&view=diff
==============================================================================
--- pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type3Font.java (original)
+++ pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/fontencodingpane/Type3Font.java Wed Aug 10 14:26:40 2016
@@ -16,14 +16,13 @@
 
 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;
-import javax.swing.JPanel;
-import org.apache.pdfbox.pdmodel.common.PDRectangle;
-import org.apache.pdfbox.pdmodel.font.PDSimpleFont;
-import org.apache.pdfbox.pdmodel.font.PDType3CharProc;
-import org.apache.pdfbox.pdmodel.font.PDType3Font;
 
 /**
  * @author Khyrul Bashar
@@ -32,8 +31,8 @@ import org.apache.pdfbox.pdmodel.font.PD
 class Type3Font extends FontPane
 {
     public static final String NO_GLYPH = "No glyph";
-    private int totalAvailableGlyph = 0;
     private final FontEncodingView view;
+    private int totalAvailableGlyph = 0;
 
     /**
      * Constructor.
@@ -45,9 +44,9 @@ class Type3Font extends FontPane
         Object[][] tableData = getGlyphs(font);
 
         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"}, null);
     }

Modified: pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java?rev=1755755&r1=1755754&r2=1755755&view=diff
==============================================================================
--- pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java (original)
+++ pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java Wed Aug 10 14:26:40 2016
@@ -16,7 +16,22 @@
 
 package org.apache.pdfbox.debugger.pagepane;
 
-import java.awt.Color;
+import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.debugger.ui.ImageUtil;
+import org.apache.pdfbox.debugger.ui.RotationMenu;
+import org.apache.pdfbox.debugger.ui.ZoomMenu;
+import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.pdmodel.PDPage;
+import org.apache.pdfbox.rendering.PDFRenderer;
+
+import javax.swing.BorderFactory;
+import javax.swing.BoxLayout;
+import javax.swing.ImageIcon;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.SwingWorker;
+import javax.swing.event.AncestorEvent;
+import javax.swing.event.AncestorListener;
 import java.awt.Component;
 import java.awt.Font;
 import java.awt.event.ActionEvent;
@@ -27,20 +42,7 @@ import java.awt.event.MouseMotionListene
 import java.awt.image.BufferedImage;
 import java.io.IOException;
 import java.util.concurrent.ExecutionException;
-import javax.swing.BoxLayout;
-import javax.swing.ImageIcon;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.SwingWorker;
-import javax.swing.event.AncestorEvent;
-import javax.swing.event.AncestorListener;
-import org.apache.pdfbox.cos.COSDictionary;
-import org.apache.pdfbox.debugger.ui.ImageUtil;
-import org.apache.pdfbox.debugger.ui.RotationMenu;
-import org.apache.pdfbox.debugger.ui.ZoomMenu;
-import org.apache.pdfbox.pdmodel.PDDocument;
-import org.apache.pdfbox.pdmodel.PDPage;
-import org.apache.pdfbox.rendering.PDFRenderer;
+import java.util.concurrent.TimeUnit;
 
 /**
  * Display the page number and a page rendering.
@@ -50,14 +52,14 @@ import org.apache.pdfbox.rendering.PDFRe
  */
 public class PagePane implements ActionListener, AncestorListener, MouseMotionListener, MouseListener
 {
+    private final PDDocument document;
+    private final JLabel statuslabel;
+    private final PDPage page;
     private JPanel panel;
     private int pageIndex = -1;
-    private final PDDocument document;
     private JLabel label;
     private ZoomMenu zoomMenu;
     private RotationMenu rotationMenu;
-    private final JLabel statuslabel;
-    private final PDPage page;
 
     public PagePane(PDDocument document, COSDictionary pageDict, JLabel statuslabel)
     {
@@ -77,14 +79,13 @@ public class PagePane implements ActionL
         
         JLabel pageLabel = new JLabel(pageLabelText);
         pageLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
-        pageLabel.setFont(new Font(Font.MONOSPACED, Font.BOLD, 30));
-        pageLabel.setBackground(Color.GREEN);
+        pageLabel.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 20));
+        pageLabel.setBorder(BorderFactory.createEmptyBorder(5, 0, 10, 0));
         panel.add(pageLabel);
         
         label = new JLabel();
         label.addMouseMotionListener(this);
         label.addMouseListener(this);
-        label.setBackground(panel.getBackground());
         label.setAlignmentX(Component.CENTER_ALIGNMENT);
         panel.add(label);
         panel.addAncestorListener(this);
@@ -230,12 +231,16 @@ public class PagePane implements ActionL
         {
             label.setIcon(null);
             label.setText("Rendering...");
-            PDFRenderer renderer = new PDFRenderer(document);
-            long t0 = System.currentTimeMillis();
             statuslabel.setText("Rendering...");
+            
+            PDFRenderer renderer = new PDFRenderer(document);
+            
+            long t0 = System.nanoTime();
             BufferedImage bim = renderer.renderImage(pageIndex, scale);
-            float t = (System.currentTimeMillis() - t0) / 1000f;
-            statuslabel.setText("Rendered in " + t + " second" + (t > 1 ? "s" : ""));
+            long t1 = System.nanoTime();
+
+            long ms = TimeUnit.MILLISECONDS.convert(t1 - t0, TimeUnit.NANOSECONDS);
+            statuslabel.setText("Rendered in " + ms + " ms");
             return ImageUtil.getRotatedImage(bim, rotation);
         }