itext-2.1.7高于此版本已经更新为AGPL授权,不建议使用。
所需jar包:
使用maven就简单多了,只需将一下配置加入poom.xml即可
org.xhtmlrenderer
flying-saucer-pdf
9.0.8
非maven,请自行去以下网站下载相应的jar:
所需 iText-2.1.7.jar
所需:core-renderer.jar、flying-saucer-pdf.jar
以下是实现代码:
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);
如有不明白的,请留言!
转载请注明出处!!!!!