1 17 18 19 20 package embedding; 21 22 import java.io.BufferedOutputStream ; 24 import java.io.File ; 25 import java.io.FileOutputStream ; 26 import java.io.IOException ; 27 import java.io.OutputStream ; 28 29 import javax.xml.transform.Transformer ; 31 import javax.xml.transform.TransformerFactory ; 32 import javax.xml.transform.Source ; 33 import javax.xml.transform.Result ; 34 import javax.xml.transform.stream.StreamSource ; 35 import javax.xml.transform.sax.SAXResult ; 36 37 38 import org.apache.fop.apps.FOUserAgent; 40 import org.apache.fop.apps.Fop; 41 import org.apache.fop.apps.FOPException; 42 import org.apache.fop.apps.FopFactory; 43 import org.apache.fop.apps.FormattingResults; 44 import org.apache.fop.apps.MimeConstants; 45 import org.apache.fop.apps.PageSequenceResults; 46 47 50 public class ExampleFO2PDF { 51 52 private FopFactory fopFactory = FopFactory.newInstance(); 54 55 62 public void convertFO2PDF(File fo, File pdf) throws IOException , FOPException { 63 64 OutputStream out = null; 65 66 try { 67 FOUserAgent foUserAgent = fopFactory.newFOUserAgent(); 68 70 out = new FileOutputStream (pdf); 73 out = new BufferedOutputStream (out); 74 75 Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, out); 77 78 TransformerFactory factory = TransformerFactory.newInstance(); 80 Transformer transformer = factory.newTransformer(); 82 Source src = new StreamSource (fo); 84 85 Result res = new SAXResult (fop.getDefaultHandler()); 87 88 transformer.transform(src, res); 90 91 FormattingResults foResults = fop.getResults(); 93 java.util.List pageSequences = foResults.getPageSequences(); 94 for (java.util.Iterator it = pageSequences.iterator(); it.hasNext();) { 95 PageSequenceResults pageSequenceResults = (PageSequenceResults)it.next(); 96 System.out.println("PageSequence " 97 + (String.valueOf(pageSequenceResults.getID()).length() > 0 98 ? pageSequenceResults.getID() : "<no id>") 99 + " generated " + pageSequenceResults.getPageCount() + " pages."); 100 } 101 System.out.println("Generated " + foResults.getPageCount() + " pages in total."); 102 103 } catch (Exception e) { 104 e.printStackTrace(System.err); 105 System.exit(-1); 106 } finally { 107 out.close(); 108 } 109 } 110 111 112 116 public static void main(String [] args) { 117 try { 118 System.out.println("FOP ExampleFO2PDF\n"); 119 System.out.println("Preparing..."); 120 121 File baseDir = new File ("."); 123 File outDir = new File (baseDir, "out"); 124 outDir.mkdirs(); 125 126 File fofile = new File (baseDir, "xml/fo/helloworld.fo"); 128 File pdffile = new File (outDir, "ResultFO2PDF.pdf"); 130 131 System.out.println("Input: XSL-FO (" + fofile + ")"); 132 System.out.println("Output: PDF (" + pdffile + ")"); 133 System.out.println(); 134 System.out.println("Transforming..."); 135 136 ExampleFO2PDF app = new ExampleFO2PDF(); 137 app.convertFO2PDF(fofile, pdffile); 138 139 System.out.println("Success!"); 140 } catch (Exception e) { 141 e.printStackTrace(System.err); 142 System.exit(-1); 143 } 144 } 145 } 146
| Popular Tags
|