首页 > 代码库 > 使用 itext、flying-saucer 实现html转PDF(转)

使用 itext、flying-saucer 实现html转PDF(转)

转自 http://blog.csdn.net/mhouwei62/article/details/51394804 表示感谢

itext-2.1.7高于此版本已经更新为AGPL授权,不建议使用。

添加了字体,没有换行问题,没有<strong>标签不解析问题。

jar

 

<dependency>      <groupId>org.xhtmlrenderer</groupId>      <artifactId>flying-saucer-pdf</artifactId>      <version>9.0.8</version>  </dependency>  

 

html 文件 转换 PDF

 

String inputFile = "D:/testHtml.html";  String outFile = "F:/outPdf.pdf";  OutputStream os = new FileOutputStream(outFile);  ITextRenderer renderer = new ITextRenderer();  ITextFontResolver fontResolver = renderer.getFontResolver();  fontResolver.addFont("C:/Windows/fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);  String url = new File(inputFile).toURI().toURL().toString();  renderer.setDocument(url);  renderer.layout();  renderer.createPDF(os);  os.close();   
 
html 字符串 转换 PDF
 
ITextRenderer renderer = new ITextRenderer();    ITextFontResolver fontResolver = renderer.getFontResolver();    fontResolver.addFont("C:/Windows/fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);  os = new ByteArrayOutputStream();  String htmlstr = "你的HTML字符串";  renderer.setDocumentFromString(htmlstr);  renderer.layout();    renderer.createPDF(os); 

 

如果你需要动态替换HTML里面的数据,推荐使用freemarker

 

StringTemplateLoader templateLoader = new StringTemplateLoader();  templateLoader.putTemplate("模板,也就是你的HTML", sb.toString());  Configuration config = new Configuration();  config.setTemplateLoader(templateLoader);  Template template = config.getTemplate("模板,也就是你的HTML");  StringWriter writer = new StringWriter();  template.process("需要替换数据所对应的参数", writer);  

 

给自己的建议 百度时要用时间排序下 尽量看时间较近的文章。

使用 itext、flying-saucer 实现html转PDF(转)