XSL-FO 简单使用方法(java & xsl-fo & xml)

package testfop;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.OutputStream;

import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.stream.StreamSource;

import org.apache.fop.apps.Driver;
import org.apache.fop.apps.FOPException;
import org.apache.fop.apps.Options;

public class fopUtil {

    private static String configFilePath = null;
    
    public fopUtil()
    {
        this.configFilePath = "E:\\adidas_support\\Tools\\fop-0.20.5\\userconfig.xml";
    }
    
    public void test()
    {try {
        File xml = new File("E:\\adidas_support\\Tools\\fop-0.20.5\\test.xml");
        File xslt = new File("E:\\adidas_support\\Tools\\fop-0.20.5\\test.xsl");
        File pdf = new File("E:\\adidas_support\\Tools\\fop-0.20.5\\test.pdf");
        String baseDir= "E:\\adidas_support\\Tools\\fop-0.20.5\\conf";
        org.apache.fop.configuration.Configuration.put("baseDir", baseDir);//设置配置路径
        OutputStream out = new java.io.FileOutputStream(pdf);//设置输出文件
        out = new java.io.BufferedOutputStream(out);
        Driver dirver = new Driver();//创建驱动
        dirver.reset();//重置驱动
        Options option = new Options(new File(this.configFilePath));//加载配置文件
        dirver.setRenderer(Driver.RENDER_PDF);//设置要转换成的文档类型
        dirver.setOutputStream(out);//设置驱动的输出源
        TransformerFactory tf = TransformerFactory.newInstance();
        Transformer tfr = tf.newTransformer(new StreamSource(xslt));//创建转换XSL文档
        Source src = new StreamSource(xml);//设置XML源
        Result res = new SAXResult(dirver.getContentHandler());
        tfr.transform(src, res);//开始转换
        out.close();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (FOPException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (TransformerConfigurationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (TransformerException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

你可能感兴趣的:(java,职场,休闲,xsl-fo)