读书人

关于施用html生成pdf

发布时间: 2012-10-15 09:45:24 作者: rapoo

关于使用html生成pdf

最近女朋友要通过html生成pdf文档,笨笨不爱思考的她直接求教与我,本人翻找 以前写过的案例(没有保存依赖jar包)进行测试一下,结果总是抛出莫名其妙的异常。慎重考虑 这恶心的问题可能是jar包不匹配问题引起的,估计广大网友也遇过类似这种问题,因此贴出相关依赖jar和程序代码防止防止广大网友好不容易找到一段程序却不能正常运行

?

程序源码

try {String outputFile = "D:/pdf/demo.pdf";OutputStream os = new FileOutputStream(outputFile);ITextRenderer renderer = new ITextRenderer();// 解决中文支持问题ITextFontResolver fontResolver = renderer.getFontResolver();// simsun.ttc为字体文件fontResolver.addFont("D:/pdf/simsun.ttc", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);//无论是方法1还是方法二对html格式要求都很严格//=====1============直接拼接html代码 开始=====================/*StringBuffer html = new StringBuffer();// DOCTYPE 必需写否则类似于 这样的字符解析会出现错误html.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");html.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">").append("<head>").append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />").append("<style type=\"text/css\" mce_bogus=\"1\">body {font-family: SimSun;}</style>").append("</head>").append("<body>").append("<div>人员名单:</div>").append("<table width=\"200\" border=\"1\">").append("<tr>").append("<td>姓名:</td>").append("<td>年龄:</td>").append("</tr>").append("<tr>").append("<td>张小三</td>").append("<td>25</td>").append("</tr>").append("</table>");html.append("</body></html>");renderer.setDocumentFromString(html.toString());*///=================直接拼接html代码 结束====================//=====2======直接加载模版 startrenderer.setDocument(new File("D:/pdf/t.htm"));//=====2======直接加载模版 end// 解决图片的相对路径问题,如果是绝对路劲的话这个设置无用renderer.getSharedContext().setBaseURL("http://www.baidu.com/img/");renderer.layout();renderer.createPDF(os);os.close();} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}

?依赖jar包

<dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.1.1</version></dependency><!-- <dependency> <groupId>org.xhtmlrenderer</groupId> <artifactId>xhtmlrenderer</artifactId> <version>8.3-atlassian</version> </dependency> --><dependency><groupId>org.xhtmlrenderer</groupId><artifactId>core-renderer</artifactId><version>R8</version></dependency><dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1.6.1</version></dependency><dependency><groupId>com.lowagie</groupId><artifactId>itext</artifactId><version>2.0.8</version></dependency>
?

读书人网 >PowerDesigner

热点推荐