1 17 18 19 20 package embedding.intermediate; 21 22 import java.io.File ; 23 import java.io.IOException ; 24 import java.io.OutputStream ; 25 26 import javax.xml.transform.Source ; 27 import javax.xml.transform.Transformer ; 28 import javax.xml.transform.TransformerException ; 29 import javax.xml.transform.TransformerFactory ; 30 import javax.xml.transform.sax.SAXResult ; 31 import javax.xml.transform.stream.StreamSource ; 32 33 import org.apache.fop.apps.FOUserAgent; 34 import org.apache.fop.apps.FopFactory; 35 import org.apache.fop.apps.MimeConstants; 36 import org.apache.fop.area.AreaTreeModel; 37 import org.apache.fop.area.AreaTreeParser; 38 import org.apache.fop.area.RenderPagesModel; 39 import org.apache.fop.fonts.FontInfo; 40 import org.xml.sax.SAXException ; 41 42 import embedding.ExampleObj2XML; 43 import embedding.model.ProjectTeam; 44 45 49 public class ExampleStamp { 50 51 private FopFactory fopFactory = FopFactory.newInstance(); 53 54 63 public void stampToPDF(File atfile, File stampSheet, File pdffile) 64 throws IOException , TransformerException , SAXException { 65 OutputStream out = new java.io.FileOutputStream (pdffile); 67 out = new java.io.BufferedOutputStream (out); 68 try { 69 FontInfo fontInfo = new FontInfo(); 71 FOUserAgent userAgent = fopFactory.newFOUserAgent(); 72 73 AreaTreeModel treeModel = new RenderPagesModel(userAgent, 75 MimeConstants.MIME_PDF, fontInfo, out); 76 77 AreaTreeParser parser = new AreaTreeParser(); 79 Source src = new StreamSource (atfile); 80 Source xslt = new StreamSource (stampSheet); 81 82 TransformerFactory tFactory = TransformerFactory.newInstance(); 84 Transformer transformer = tFactory.newTransformer(xslt); 85 86 SAXResult res = new SAXResult (parser.getContentHandler(treeModel, userAgent)); 88 89 transformer.transform(src, res); 91 92 treeModel.endDocument(); 94 } finally { 95 out.close(); 96 } 97 } 98 99 103 public static void main(String [] args) { 104 try { 105 System.out.println("FOP ExampleConcat\n"); 106 107 File baseDir = new File ("."); 109 File outDir = new File (baseDir, "out"); 110 outDir.mkdirs(); 111 112 File xsltfile = new File (baseDir, "xml/xslt/projectteam2fo.xsl"); 114 File atfile = new File (outDir, "team.at.xml"); 115 File stampxsltfile = new File (baseDir, "xml/xslt/atstamp.xsl"); 116 File pdffile = new File (outDir, "ResultStamped.pdf"); 117 System.out.println("Intermediate file : " + atfile.getCanonicalPath()); 118 System.out.println("Stamp XSLT: " + stampxsltfile.getCanonicalPath()); 119 System.out.println("PDF Output File: " + pdffile.getCanonicalPath()); 120 System.out.println(); 121 122 ProjectTeam team1 = ExampleObj2XML.createSampleProjectTeam(); 123 124 ExampleConcat concatapp = new ExampleConcat(); 126 concatapp.convertToIntermediate( 127 team1.getSourceForProjectTeam(), 128 new StreamSource (xsltfile), atfile); 129 130 ExampleStamp app = new ExampleStamp(); 132 app.stampToPDF(atfile, stampxsltfile, pdffile); 133 134 System.out.println("Success!"); 135 136 } catch (Exception e) { 137 e.printStackTrace(System.err); 138 System.exit(-1); 139 } 140 } 141 142 } 143
| Popular Tags
|