]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Fix for PDF corruption when a TrueType font with spaces in its name is embedded and...
authorJeremias Maerki <jeremias@apache.org>
Fri, 26 Jan 2007 11:06:01 +0000 (11:06 +0000)
committerJeremias Maerki <jeremias@apache.org>
Fri, 26 Jan 2007 11:06:01 +0000 (11:06 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@500222 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/fonts/MultiByteFont.java
status.xml

index 2dd3846ed9ab5ab1fa8153c5ba970e2e0b5c7cbe..1b9263d177192a80718a9b8fb55c6fcdb56e5b23 100644 (file)
@@ -109,12 +109,35 @@ public class MultiByteFont extends CIDFont {
         this.cidType = cidType;
     }
 
+    /**
+     * Removes all white space from a string (used primarily for font names)
+     * @param s the string
+     * @return the processed result
+     */
+    public static String stripWhiteSpace(String s) {
+        StringBuffer sb = new StringBuffer(s.length());
+        for (int i = 0, c = s.length(); i < c; i++) {
+            final char ch = s.charAt(i);
+            if (ch != ' ' 
+                    && ch != '\r' 
+                    && ch != '\n'
+                    && ch != '\t') {
+                sb.append(ch);
+            }
+        }
+        return sb.toString();
+    }
+    
+    private String getPrefixedFontName() {
+        return namePrefix + stripWhiteSpace(super.getFontName());
+    }
+    
     /**
      * @see org.apache.fop.fonts.CIDFont#getCidBaseFont()
      */
     public String getCidBaseFont() {
         if (isEmbeddable()) {
-            return namePrefix + super.getFontName();
+            return getPrefixedFontName();
         } else {
             return super.getFontName();
         }
@@ -139,7 +162,7 @@ public class MultiByteFont extends CIDFont {
      */
     public String getFontName() {
         if (isEmbeddable()) {
-            return namePrefix + super.getFontName();
+            return getPrefixedFontName();
         } else {
             return super.getFontName();
         }
index 1527275c11d43a52aff14fcf6ef7a6aabef494f1..4117095fc3d31ba33ef508f636d75fc3e2f587af 100644 (file)
 
   <changes>
     <release version="FOP Trunk">
+      <action context="Code" dev="JM" type="fix">
+        Fix for PDF corruption when a TrueType font with spaces in its name is embedded and no 
+        XML font metrics file for that font is used.
+      </action>
       <action context="Code" dev="JM" type="fix" fixes-bug="41426" due-to="Adrian Cumiskey">
         Fix for ClassCastException when fo:wrapper was used as direct child of fo:flow.
         Note: "id" attributes are still not handled properly on fo:wrapper!