]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Bugzilla #39030:
authorJeremias Maerki <jeremias@apache.org>
Mon, 20 Mar 2006 07:32:22 +0000 (07:32 +0000)
committerJeremias Maerki <jeremias@apache.org>
Mon, 20 Mar 2006 07:32:22 +0000 (07:32 +0000)
Output filenames with a space resulted in "%20" in the generated file. Looks like a bug in Xalan-J.
We now open the OutputStream ourselves. The two practically identical write methods pulled up into the abstract base class.

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@387161 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/fonts/apps/AbstractFontReader.java
src/java/org/apache/fop/fonts/apps/PFMReader.java
src/java/org/apache/fop/fonts/apps/TTFReader.java

index 35e103aad2b151f92d89bbf83502a95b3928feb4..0f8cfdb0602bc60aedc53cecf82930ed9f9a7ecb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2005 The Apache Software Foundation.
+ * Copyright 1999-2006 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  
 package org.apache.fop.fonts.apps;
 
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
 import java.util.List;
 import java.util.Map;
 
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.fop.util.CommandLineLogger;
@@ -101,5 +108,43 @@ public abstract class AbstractFontReader {
             setLogLevel("info");
         }
     }
+
+    /**
+     * Writes the generated DOM Document to a file.
+     *
+     * @param   doc The DOM Document to save.
+     * @param   target The target filename for the XML file.
+     * @throws TransformerException if an error occurs during serialization
+     */
+    public void writeFontXML(org.w3c.dom.Document doc, String target) throws TransformerException {
+        writeFontXML(doc, new File(target));
+    }
+    
+    /**
+     * Writes the generated DOM Document to a file.
+     *
+     * @param   doc The DOM Document to save.
+     * @param   target The target file for the XML file.
+     * @throws TransformerException if an error occurs during serialization
+     */
+    public void writeFontXML(org.w3c.dom.Document doc, File target) throws TransformerException {
+        log.info("Writing xml font file " + target + "...");
+    
+        try {
+            OutputStream out = new java.io.FileOutputStream(target);
+            out = new java.io.BufferedOutputStream(out);
+            try {
+                TransformerFactory factory = TransformerFactory.newInstance();
+                Transformer transformer = factory.newTransformer();
+                transformer.transform(
+                        new javax.xml.transform.dom.DOMSource(doc),
+                        new javax.xml.transform.stream.StreamResult(out));
+            } finally {
+                out.close();
+            }
+        } catch (IOException ioe) {
+            throw new TransformerException("Error writing the output file", ioe);
+        }
+    }
     
 }
index ebf7bd2ba133723ab0d76e2e96444c644c0fb19b..0a14578d9fbc790cccc07fd30602dbd89300da8f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2005 The Apache Software Foundation.
+ * Copyright 1999-2006 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  
 package org.apache.fop.fonts.apps;
 
-import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Iterator;
 import java.util.Map;
 
 import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
 
 import org.apache.commons.logging.LogFactory;
 import org.apache.fop.Version;
@@ -189,25 +185,6 @@ public class PFMReader extends AbstractFontReader {
        }
     }
 
-    /**
-     * Writes the generated DOM Document to a file.
-     *
-     * @param   doc The DOM Document to save.
-     * @param   target The target filename for the XML file.
-     * @throws TransformerException if an error occurs during serialization
-     */
-    public void writeFontXML(org.w3c.dom.Document doc, String target) 
-                throws TransformerException {
-        log.info("Writing xml font file " + target + "...");
-        log.info("");
-
-        TransformerFactory factory = TransformerFactory.newInstance();
-        Transformer transformer = factory.newTransformer();
-        transformer.transform(
-                new javax.xml.transform.dom.DOMSource(doc),
-                new javax.xml.transform.stream.StreamResult(new File(target)));
-    }
-
     /**
      * Generates the font metrics file from the PFM file.
      *
index 9358cab66568fd4c3abbad5fb9d68ebd7746e6b8..8b564bc3d8f680ca79bf1d9aefd3f21e1fba922c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2005 The Apache Software Foundation.
+ * Copyright 1999-2006 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  
 package org.apache.fop.fonts.apps;
 
-import java.io.File;
 import java.io.IOException;
 import java.util.Iterator;
 import java.util.Map;
 
 import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
 
 import org.apache.commons.logging.LogFactory;
 import org.apache.fop.Version;
@@ -208,24 +204,6 @@ public class TTFReader extends AbstractFontReader {
     }
 
 
-    /**
-     * Writes the generated DOM Document to a file.
-     *
-     * @param   doc The DOM Document to save.
-     * @param   target The target filename for the XML file.
-     * @throws TransformerException if an error occurs during serialization
-     */
-    public void writeFontXML(org.w3c.dom.Document doc, String target) 
-                throws TransformerException {
-        log.info("Writing xml font file " + target + "...");
-
-        TransformerFactory factory = TransformerFactory.newInstance();
-        Transformer transformer = factory.newTransformer();
-        transformer.transform(
-                new javax.xml.transform.dom.DOMSource(doc),
-                new javax.xml.transform.stream.StreamResult(new File(target)));
-    }
-
     /**
      * Generates the font metrics file from the TTF/TTC file.
      *