You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by ss...@apache.org on 2015/12/02 15:18:41 UTC

svn commit: r1717634 - /xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFFactory.java

Author: ssteiner
Date: Wed Dec  2 14:18:41 2015
New Revision: 1717634

URL: http://svn.apache.org/viewvc?rev=1717634&view=rev
Log:
FOP-2546: ArrayIndexOutOfBoundsException merging fonts

Modified:
    xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFFactory.java

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFFactory.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFFactory.java?rev=1717634&r1=1717633&r2=1717634&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFFactory.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFFactory.java Wed Dec  2 14:18:41 2015
@@ -981,27 +981,31 @@ public class PDFFactory {
                     //No ToUnicode CMap necessary if PDF 1.4, chapter 5.9 (page 368) is to be
                     //believed.
                 } else if (mapping.getName().equals("FOPPDFEncoding")) {
-                    String[] charNameMap = mapping.getCharNameMap();
-                    char[] intmap = mapping.getUnicodeCharMap();
-                    PDFArray differences = new PDFArray();
-                    int len = intmap.length;
-                    if (charNameMap.length < len) {
-                        len = charNameMap.length;
-                    }
-                    int last = 0;
-                    for (int i = 0; i < len; i++) {
-                        if (intmap[i] - 1 != last) {
-                            differences.add(intmap[i]);
+                    if (fonttype == FontType.TRUETYPE) {
+                        font.setEncoding("WinAnsiEncoding");
+                    } else {
+                        String[] charNameMap = mapping.getCharNameMap();
+                        char[] intmap = mapping.getUnicodeCharMap();
+                        PDFArray differences = new PDFArray();
+                        int len = intmap.length;
+                        if (charNameMap.length < len) {
+                            len = charNameMap.length;
+                        }
+                        int last = 0;
+                        for (int i = 0; i < len; i++) {
+                            if (intmap[i] - 1 != last) {
+                                differences.add(intmap[i]);
+                            }
+                            last = intmap[i];
+                            differences.add(new PDFName(charNameMap[i]));
+                        }
+                        PDFEncoding pdfEncoding = new PDFEncoding(singleByteFont.getEncodingName());
+                        getDocument().registerObject(pdfEncoding);
+                        pdfEncoding.setDifferences(differences);
+                        font.setEncoding(pdfEncoding);
+                        if (mapping.getUnicodeCharMap() != null) {
+                            generateToUnicodeCmap(nonBase14, mapping);
                         }
-                        last = intmap[i];
-                        differences.add(new PDFName(charNameMap[i]));
-                    }
-                    PDFEncoding pdfEncoding = new PDFEncoding(singleByteFont.getEncodingName());
-                    getDocument().registerObject(pdfEncoding);
-                    pdfEncoding.setDifferences(differences);
-                    font.setEncoding(pdfEncoding);
-                    if (mapping.getUnicodeCharMap() != null) {
-                        generateToUnicodeCmap(nonBase14, mapping);
                     }
                 } else {
                     Object pdfEncoding = createPDFEncoding(mapping,



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org