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 2014/12/16 20:23:24 UTC

svn commit: r1646052 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font: PDCIDFontType2.java PDType0Font.java

Author: jahewson
Date: Tue Dec 16 19:23:23 2014
New Revision: 1646052

URL: http://svn.apache.org/r1646052
Log:
PDFBOX-2560: Nonsymbolic flag is not used in Type0 fonts

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java?rev=1646052&r1=1646051&r2=1646052&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java Tue Dec 16 19:23:23 2014
@@ -35,8 +35,6 @@ 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.pdmodel.font.encoding.GlyphList;
-import org.apache.pdfbox.pdmodel.font.encoding.StandardEncoding;
 import org.apache.pdfbox.io.IOUtils;
 import org.apache.pdfbox.pdmodel.common.PDStream;
 import org.apache.pdfbox.util.Matrix;
@@ -252,35 +250,10 @@ public class PDCIDFontType2 extends PDCI
                     return cid2gid[cid];
                 }
             }
-            else if (!parent.isSymbolic())
-            {
-                // this nonsymbolic behaviour isn't well documented, test with PDFBOX-1422
-
-                // if the font descriptor's Nonsymbolic flag is set, the conforming reader shall
-                // create a table that maps from character codes to glyph names
-                String name = null;
-
-                // If the Encoding entry is one of the names MacRomanEncoding, WinAnsiEncoding,
-                // or a dictionary, then the table is initialized as normal
-                // todo: Encoding is not allowed though, right? So this never happens?
-                /*if (getFontEncoding() != null)
-                {
-                    name = getFontEncoding().getName(cid);
-                }*/
-
-                // Any undefined entries in the table shall be filled using StandardEncoding
-                if (name == null)
-                {
-                    name = StandardEncoding.INSTANCE.getName(code);
-                }
-
-                // map to a Unicode value using the Adobe Glyph List
-                unicode = GlyphList.getAdobeGlyphList().toUnicode(name);
-            }
             else
             {
-                int cid = codeToCID(code);
-                unicode = parent.toUnicode(cid); // code = CID for TTF
+                // test with PDFBOX-1422 and PDFBOX-2560
+                unicode = parent.toUnicode(code);
             }
 
             if (unicode == null)

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java?rev=1646052&r1=1646051&r2=1646052&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java Tue Dec 16 19:23:23 2014
@@ -31,8 +31,6 @@ import org.apache.pdfbox.cos.COSBase;
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.PDDocument;
-import org.apache.pdfbox.pdmodel.font.encoding.GlyphList;
-import org.apache.pdfbox.pdmodel.font.encoding.StandardEncoding;
 import org.apache.pdfbox.util.Matrix;
 import org.apache.pdfbox.util.Vector;
 
@@ -95,12 +93,6 @@ public class PDType0Font extends PDFont
         readEncoding();
         fetchCMapUCS2();
         descendantFont = PDFontFactory.createDescendantFont(descendantFontDictionary, this);
-
-        // warn if there may be text extraction issues
-        if (!isSymbolic())
-        {
-            LOG.warn("Nonsymbolic Type 0 font: " + getName());
-        }
     }
 
     /**
@@ -316,14 +308,7 @@ public class PDType0Font extends PDFont
             return unicode;
         }
 
-        if (!isSymbolic())
-        {
-            // this nonsymbolic behaviour isn't well documented, test with PDFBOX-1422,
-            // also see PDCIDFontType2#cidToGID()
-            String name = StandardEncoding.INSTANCE.getName(code);
-            return GlyphList.getAdobeGlyphList().toUnicode(name);
-        }
-        else if (isCMapPredefined && cMapUCS2 != null)
+        if (isCMapPredefined && cMapUCS2 != null)
         {
             // if the font is composite and uses a predefined cmap (excluding Identity-H/V) then
             // or if its decendant font uses Adobe-GB1/CNS1/Japan1/Korea1