html 生成 pdf 实现思路和代码,基于itext
?
解决了中文就该说说生成pdf常见的问题,如分页,如页眉,页脚,超链,图片,margin不过我懒得写了,附件中有个pdf里面都有解决方法。
?
直接贴代码吧?
?
StringBuilder sb = new StringBuilder();BufferedReader reader = new BufferedReader(new FileReader(new File("abc.html")));String line = null;while((line = reader.readLine()) != null){sb.append(line).append("\r\n");}ITextRenderer render = new ITextRenderer();ITextFontResolver font = render.getFontResolver();try {font.addFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); // font.addFont(Html2Pdfs.class.getResource("SIMSUN.TTC").toString().substring(6), BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);} catch (DocumentException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}OutputStream os = new FileOutputStream(pdf);render.setDocumentFromString(sb.toString());render.layout();render.createPDF(os);os.close();?
很简单吧,不过生成速度非常慢,我测试过纯itext的生成速度非常快,那么应该是解析css慢。没办法谁叫只有这一家支持css呢,要不就只能去用itext了。