Uživatelské nástroje

Nástroje pro tento web


xml-xsl-fo-pdf

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
xml-xsl-fo-pdf [2013/08/26 17:20]
blazek [Instalace]
xml-xsl-fo-pdf [2015/09/26 15:57] (aktuální)
Řádek 151: Řádek 151:
 shell# ./​fop-1.1/​fop -c ./​fop-1.1/​conf/​fop.xconf -xml ./​xml/​test.xml ./​xsl/​test.xsl -pdf ./​pdf/​test.pdf shell# ./​fop-1.1/​fop -c ./​fop-1.1/​conf/​fop.xconf -xml ./​xml/​test.xml ./​xsl/​test.xsl -pdf ./​pdf/​test.pdf
 </​code>​ </​code>​
 +
 +=== JAVA FOP class ===
 +
 +<file java FopGen.java>​
 +package test;
 +
 +import org.apache.log4j.Logger;​
 +import java.io.File;​
 +import java.io.OutputStream;​
 +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;​
 +import org.apache.fop.apps.FOUserAgent;​
 +import org.apache.fop.apps.Fop;​
 +import org.apache.fop.apps.FopFactory;​
 +import org.apache.fop.apps.MimeConstants;​
 +
 +/**
 + *
 + * @author blazek
 + */
 +public class FopGen {
 +
 +    static Logger logger = Logger.getLogger(FopGen.class);​
 +    private String xconf;
 +    private String fontBase;
 +    private String xmlInput;
 +    private String xsltInput;
 +    private String pdfOutput;
 +
 +    public FopGen() {
 +    }
 +
 +    public FopGen(String xconf, String fontBase, String xmlInput, String xsltInput, String pdfOutput) {
 +        this.xconf = xconf;
 +        this.fontBase = fontBase;
 +        this.xmlInput = xmlInput;
 +        this.xsltInput = xsltInput;
 +        this.pdfOutput = pdfOutput;
 +    }
 +
 +    public String getXconf() {
 +        return xconf;
 +    }
 +
 +    public void setXconf(String xconf) {
 +        this.xconf = xconf;
 +    }
 +
 +    public String getFontBase() {
 +        return fontBase;
 +    }
 +
 +    public void setFontBase(String fontBase) {
 +        this.fontBase = fontBase;
 +    }
 +
 +    public String getXmlInput() {
 +        return xmlInput;
 +    }
 +
 +    public void setXmlInput(String xmlInput) {
 +        this.xmlInput = xmlInput;
 +    }
 +
 +    public String getXsltInput() {
 +        return xsltInput;
 +    }
 +
 +    public void setXsltInput(String xsltInput) {
 +        this.xsltInput = xsltInput;
 +    }
 +
 +    public String getPdfOutput() {
 +        return pdfOutput;
 +    }
 +
 +    public void setPdfOutput(String pdfOutput) {
 +        this.pdfOutput = pdfOutput;
 +    }        ​
 +
 +    public boolean createPDF() {
 +
 +        try {
 +            // configure fopFactory as desired
 +            FopFactory fopFactory = FopFactory.newInstance();​
 +
 +            // configure fonts
 +            fopFactory.setUserConfig(this.xconf);​
 +            fopFactory.getFontManager().setFontBaseURL("​file://"​ + this.fontBase);​
 +            FOUserAgent foUserAgent = fopFactory.newFOUserAgent();​
 +
 +            // Setup output
 +            OutputStream out = new java.io.FileOutputStream(new File(this.pdfOutput));​
 +            out = new java.io.BufferedOutputStream(out);​
 +
 +            try {
 +                // Construct fop with desired output format
 +                Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF,​ foUserAgent,​ out);
 +
 +                // Setup XSLT
 +                TransformerFactory factory = TransformerFactory.newInstance();​
 +                Transformer transformer = factory.newTransformer(new StreamSource(new File(this.xsltInput)));​
 +
 +                // Setup input for XSLT transformation
 +                Source src = new StreamSource(new File(this.xmlInput));​
 +
 +                // Resulting SAX events (the generated FO) must be piped through to FOP
 +                Result res = new SAXResult(fop.getDefaultHandler());​
 +
 +                // Start XSLT transformation and FOP processing
 +                transformer.transform(src,​ res);
 +            } finally {
 +                out.close();​
 +            }
 +        } catch (Exception e) {
 +            e.printStackTrace(System.err);​
 +            System.exit(-1);​
 +        }
 +
 +        return true;
 +    }
 +}
 +</​file>​
xml-xsl-fo-pdf.txt · Poslední úprava: 2015/09/26 15:57 (upraveno mimo DokuWiki)