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 2015/06/29 22:32:56 UTC

svn commit: r1688302 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox: pdmodel/font/PDType1CFont.java rendering/PageDrawer.java

Author: jahewson
Date: Mon Jun 29 20:32:56 2015
New Revision: 1688302

URL: http://svn.apache.org/r1688302
Log:
PDFBOX-2842: Use the FontMatrix when calculating widths

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java?rev=1688302&r1=1688301&r2=1688302&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java Mon Jun 29 20:32:56 2015
@@ -208,18 +208,27 @@ public class PDType1CFont extends PDSimp
     {
         if (fontMatrix == null)
         {
-            if (cffFont != null)
+            List<Number> numbers = null;
+            try
             {
-                List<Number> numbers = cffFont.getFontMatrix();
-                if (numbers != null && numbers.size() == 6)
-                {
-                    fontMatrix = new Matrix(numbers.get(0).floatValue(), numbers.get(1).floatValue(),
-                            numbers.get(2).floatValue(), numbers.get(3).floatValue(),
-                            numbers.get(4).floatValue(), numbers.get(5).floatValue());
-                    return fontMatrix;
-                }
+                numbers = genericFont.getFontMatrix();
+            }
+            catch (IOException e)
+            {
+                fontMatrix = DEFAULT_FONT_MATRIX;
+            }
+
+            if (numbers != null && numbers.size() == 6)
+            {
+                fontMatrix = new Matrix(
+                        numbers.get(0).floatValue(), numbers.get(1).floatValue(),
+                        numbers.get(2).floatValue(), numbers.get(3).floatValue(),
+                        numbers.get(4).floatValue(), numbers.get(5).floatValue());
+            }
+            else
+            {
+                return super.getFontMatrix();
             }
-            fontMatrix = super.getFontMatrix();
         }
         return fontMatrix;
     }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java?rev=1688302&r1=1688301&r2=1688302&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Mon Jun 29 20:32:56 2015
@@ -367,6 +367,7 @@ public class PageDrawer extends PDFGraph
                         Math.abs(fontWidth - displacement.getX() * 1000) > 0.0001)
                 {
                     float pdfWidth = displacement.getX() * 1000;
+                    pdfWidth *= font.getFontMatrix().getScalingFactorX() * 1000;
                     at.scale(pdfWidth / fontWidth, 1);
                 }
             }