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();
}
}
}
©著作权归作者所有:来自51CTO博客作者liqinmeng0408的原创作品,如需转载,请注明出处,否则将追究法律责任