1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
public void generate(String templateContent, Map<String, String> dataMap, String fontPath, File file) { FileOutputStream outputStream = null; ITextRenderer renderer = new ITextRenderer(); try { Configuration cfg = new Configuration(); StringTemplateLoader stringLoader = new StringTemplateLoader(); stringLoader.putTemplate("myTemplate", templateContent); cfg.setTemplateLoader(stringLoader); Template template = cfg.getTemplate("myTemplate", "utf-8"); String htmlData = FreeMarkerTemplateUtils.processTemplateIntoString(template, dataMap); outputStream = new FileOutputStream(file);
ITextFontResolver fontResolver = renderer.getFontResolver(); fontResolver.addFont(fontPath, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); renderer.setDocumentFromString(htmlData);
renderer.layout(); renderer.createPDF(outputStream); } catch (DocumentException | IOException | TemplateException e) { log.error("生成失败", e); } finally { renderer.finishPDF(); IOUtils.closeQuietly(outputStream); } }
|