读书人

html2pdf 兑现思路和代码

发布时间: 2012-10-27 10:42:26 作者: rapoo

html2pdf 实现思路和代码

主要代码参考了 这篇帖子http://www.iteye.com/topic/509417,写的非常不错。尤其看他的的解决问题的思路特别受启发,我在看这篇帖子之前也看到了flying-saucer ,并且下载了jar包做了例子,但是没有成功我就匆忙放弃了,又踏上了寻找的路途。 以后要记得看 要找的项目的介绍,如果合适,就去看文档,文档里面一般是非常全面的。

首先itext就不用说了,自己去google。 直接上saucer的介绍:

?

还有它对中文支持情况,如果你打算在html中使用中文,就必须在 css中全局定义 字体。并在 代码中 添加该字体文件。否则是不能显示中文的。

?

上代码

?

public static void main(String[] args) throws Exception {          String inputFile = "index11.html";          System.out.println(new File(inputFile).getAbsolutePath());        String url = new File(inputFile).toURI().toURL().toString();          String outputFile = "firstdoc.pdf";          OutputStream os = new FileOutputStream(outputFile);          ITextRenderer renderer = new ITextRenderer();          renderer.setDocument(url);          // 解决中文支持问题          ITextFontResolver fontResolver = renderer.getFontResolver();        fontResolver.addFont("C:/Windows/Fonts/SIMSUN.TTC", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);   // 你可以把该文件放到项目中,这样打包后就不用依赖机器环境了// 我这里指定为sinsun 是因为我在css中指定 了字体为 宋体        // 解决图片的相对路径问题    (这里我发现不用指定 ,图片显示也会正常,只是图片必须要指定为相对路径)       // renderer.getSharedContext().setBaseURL("file:/D:/grails-work/html2pdf/");                    renderer.layout();          renderer.createPDF(os);                    os.close();  }  
??

?

rar中有html和css图片,还有生成的pdf,也有需要的jar,可以自行测试。仅在此记录一下,我也正在看 文档,有了新的想法,再加

读书人网 >PowerDesigner

热点推荐