gmazza 2004/07/14 15:42:29
Modified: examples/embedding/java/embedding ExampleFO2PDF.java
Log:
Updated FO->PDF example to use JAXP.
Revision Changes Path
1.9 +30 -19 xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java
Index: ExampleFO2PDF.java
===================================================================
RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- ExampleFO2PDF.java 9 Jul 2004 01:48:58 -0000 1.8
+++ ExampleFO2PDF.java 14 Jul 2004 22:42:29 -0000 1.9
@@ -24,8 +24,13 @@
import java.io.InputStream;
import java.io.OutputStream;
-// SAX
-import org.xml.sax.InputSource;
+//JAXP
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.Source;
+import javax.xml.transform.Result;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.sax.SAXResult;
// FOP
import org.apache.fop.apps.Driver;
@@ -45,28 +50,34 @@
*/
public void convertFO2PDF(File fo, File pdf) throws IOException, FOPException {
- // Construct driver
- Driver driver = new Driver();
+ OutputStream out = null;
- // Setup Renderer (output format)
- driver.setRenderer(Driver.RENDER_PDF);
-
- // Setup output
- OutputStream out = new java.io.FileOutputStream(pdf);
- out = new java.io.BufferedOutputStream(out);
try {
+ // Construct driver and setup output format
+ Driver driver = new Driver();
+ driver.setRenderer(Driver.RENDER_PDF);
+
+ // Setup output
+ out = new java.io.FileOutputStream(pdf);
+ out = new java.io.BufferedOutputStream(out);
driver.setOutputStream(out);
- //Setup input
- InputStream in = new java.io.FileInputStream(fo);
- try {
- driver.setInputSource(new InputSource(in));
+ // Setup JAXP using identity transformer
+ TransformerFactory factory = TransformerFactory.newInstance();
+ Transformer transformer = factory.newTransformer(); // identity
transformer
+
+ // Setup input for XSLT transformation
+ Source src = new StreamSource(fo);
- //Process FO
- driver.run();
- } finally {
- in.close();
- }
+ // Resulting SAX events (the generated FO) must be piped through to FOP
+ Result res = new SAXResult(driver.getContentHandler());
+
+ // Start XSLT transformation and FOP processing
+ transformer.transform(src, res);
+
+ } catch (Exception e) {
+ e.printStackTrace(System.err);
+ System.exit(-1);
} finally {
out.close();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]