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/03/24 23:53:52 UTC

svn commit: r1669018 - /pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java

Author: jahewson
Date: Tue Mar 24 22:53:51 2015
New Revision: 1669018

URL: http://svn.apache.org/r1669018
Log:
PDFBOX-2576: Read CFF private dicts in a common method

Modified:
    pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java

Modified: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java?rev=1669018&r1=1669017&r2=1669018&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java (original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java Tue Mar 24 22:53:51 2015
@@ -518,24 +518,7 @@ public class CFFParser
             DictData privateDict = readDictData(privateDictData);
 
             // populate private dict
-            Map<String, Object> privDict = new LinkedHashMap<String, Object>();
-            privDict.put("BlueValues", getDelta(privateDict, "BlueValues", null));
-            privDict.put("OtherBlues", getDelta(privateDict, "OtherBlues", null));
-            privDict.put("FamilyBlues", getDelta(privateDict, "FamilyBlues", null));
-            privDict.put("FamilyOtherBlues", getDelta(privateDict, "FamilyOtherBlues", null));
-            privDict.put("BlueScale", getNumber(privateDict, "BlueScale", 0.039625));
-            privDict.put("BlueShift", getNumber(privateDict, "BlueShift", 7));
-            privDict.put("BlueFuzz", getNumber(privateDict, "BlueFuzz", 1));
-            privDict.put("StdHW", getNumber(privateDict, "StdHW", null));
-            privDict.put("StdVW", getNumber(privateDict, "StdVW", null));
-            privDict.put("StemSnapH", getDelta(privateDict, "StemSnapH", null));
-            privDict.put("StemSnapV", getDelta(privateDict, "StemSnapV", null));
-            privDict.put("ForceBold", getBoolean(privateDict, "ForceBold", false));
-            privDict.put("LanguageGroup", getNumber(privateDict, "LanguageGroup", 0));
-            privDict.put("ExpansionFactor", getNumber(privateDict, "ExpansionFactor", 0.06));
-            privDict.put("initialRandomSeed", getNumber(privateDict, "initialRandomSeed", 0));
-            privDict.put("defaultWidthX", getNumber(privateDict, "defaultWidthX", 0));
-            privDict.put("nominalWidthX", getNumber(privateDict, "nominalWidthX", 0));
+            Map<String, Object> privDict = readPrivateDict(privateDict);
             privateDictionaries.add(privDict);
 
             // local subrs
@@ -567,6 +550,29 @@ public class CFFParser
         font.setFdSelect(fdSelect);
     }
 
+    private Map<String, Object> readPrivateDict(DictData privateDict)
+    {
+        Map<String, Object> privDict = new LinkedHashMap<String, Object>();
+        privDict.put("BlueValues", getDelta(privateDict, "BlueValues", null));
+        privDict.put("OtherBlues", getDelta(privateDict, "OtherBlues", null));
+        privDict.put("FamilyBlues", getDelta(privateDict, "FamilyBlues", null));
+        privDict.put("FamilyOtherBlues", getDelta(privateDict, "FamilyOtherBlues", null));
+        privDict.put("BlueScale", getNumber(privateDict, "BlueScale", 0.039625));
+        privDict.put("BlueShift", getNumber(privateDict, "BlueShift", 7));
+        privDict.put("BlueFuzz", getNumber(privateDict, "BlueFuzz", 1));
+        privDict.put("StdHW", getNumber(privateDict, "StdHW", null));
+        privDict.put("StdVW", getNumber(privateDict, "StdVW", null));
+        privDict.put("StemSnapH", getDelta(privateDict, "StemSnapH", null));
+        privDict.put("StemSnapV", getDelta(privateDict, "StemSnapV", null));
+        privDict.put("ForceBold", getBoolean(privateDict, "ForceBold", false));
+        privDict.put("LanguageGroup", getNumber(privateDict, "LanguageGroup", 0));
+        privDict.put("ExpansionFactor", getNumber(privateDict, "ExpansionFactor", 0.06));
+        privDict.put("initialRandomSeed", getNumber(privateDict, "initialRandomSeed", 0));
+        privDict.put("defaultWidthX", getNumber(privateDict, "defaultWidthX", 0));
+        privDict.put("nominalWidthX", getNumber(privateDict, "nominalWidthX", 0));
+        return privDict;
+    }
+
     /**
      * Parse dictionaries specific to a Type 1-equivalent font.
      */
@@ -601,23 +607,11 @@ public class CFFParser
         DictData privateDict = readDictData(privateDictData);
 
         // populate private dict
-        font.addToPrivateDict("BlueValues", getDelta(privateDict, "BlueValues", null));
-        font.addToPrivateDict("OtherBlues", getDelta(privateDict, "OtherBlues", null));
-        font.addToPrivateDict("FamilyBlues", getDelta(privateDict, "FamilyBlues", null));
-        font.addToPrivateDict("FamilyOtherBlues", getDelta(privateDict, "FamilyOtherBlues", null));
-        font.addToPrivateDict("BlueScale", getNumber(privateDict, "BlueScale", 0.039625));
-        font.addToPrivateDict("BlueShift", getNumber(privateDict, "BlueShift", 7));
-        font.addToPrivateDict("BlueFuzz", getNumber(privateDict, "BlueFuzz", 1));
-        font.addToPrivateDict("StdHW", getNumber(privateDict, "StdHW", null));
-        font.addToPrivateDict("StdVW", getNumber(privateDict, "StdVW", null));
-        font.addToPrivateDict("StemSnapH", getDelta(privateDict, "StemSnapH", null));
-        font.addToPrivateDict("StemSnapV", getDelta(privateDict, "StemSnapV", null));
-        font.addToPrivateDict("ForceBold", getBoolean(privateDict, "ForceBold", false));
-        font.addToPrivateDict("LanguageGroup", getNumber(privateDict, "LanguageGroup", 0));
-        font.addToPrivateDict("ExpansionFactor", getNumber(privateDict, "ExpansionFactor", 0.06));
-        font.addToPrivateDict("initialRandomSeed", getNumber(privateDict, "initialRandomSeed", 0));
-        font.addToPrivateDict("defaultWidthX", getNumber(privateDict, "defaultWidthX", 0));
-        font.addToPrivateDict("nominalWidthX", getNumber(privateDict, "nominalWidthX", 0));
+        Map<String, Object> privDict = readPrivateDict(privateDict);
+        for (Map.Entry<String, Object> entry : privDict.entrySet())
+        {
+            font.addToPrivateDict(entry.getKey(), entry.getValue());
+        }
 
         // local subrs
         int localSubrOffset = (Integer) getNumber(privateDict, "Subrs", 0);