IText利用freemarker生成pdf 博客分类: java ITextpdf
程序员文章站
2024-03-25 15:49:40
...
公司需要动态生成PDF,搞了很久,终于搞好,现在拿出主要代码分享一下
唯一的不足是不支持中文换行,如果有人知道可以交流下
唯一的不足是不支持中文换行,如果有人知道可以交流下
//step1 加载template模板文件 Configuration cfg = new Configuration(); cfg.setDirectoryForTemplateLoading(new File(templateBasePath)); cfg.setObjectWrapper(new DefaultObjectWrapper()); //编码防止乱码 cfg.setDefaultEncoding("UTF-8"); Template t = cfg.getTemplate("cover.ftl"); //编码防止乱码 t.setEncoding("UTF-8"); String html = "demo.html"; File file = new File(html); if (!file.exists()) { file.createNewFile(); } Map map = new HashMap(); Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "UTF-8")); t.process(map, out); String url = new File(html).toURI().toURL().toString(); String outputFile = "cover.pdf"; // step 2 OutputStream os = new FileOutputStream(outputFile); org.xhtmlrenderer.pdf.ITextRenderer renderer = new ITextRenderer(); renderer.setDocument(url); renderer.getSharedContext().setBaseURL("file:///" + imageBasePath); // step 3 解决中文支持 org.xhtmlrenderer.pdf.ITextFontResolver fontResolver = renderer.getFontResolver(); fontResolver.addFont("C:/Windows/Fonts/simsun.ttc", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED); renderer.layout(); renderer.createPDF(os); os.close(); //maven 所需要的jar <dependency> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> <version>2.0.8</version> </dependency> <dependency> <groupId>org.xhtmlrenderer</groupId> <artifactId>core-renderer</artifactId> <version>R8pre2</version> </dependency> <dependency> <groupId>freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.9</version> </dependency>
推荐阅读
-
IText利用freemarker生成pdf 博客分类: java ITextpdf
-
itext生成pdf文件下载 博客分类: JAVA / Lib-tools itextjava pdf
-
itext生成pdf文件-表格 博客分类: 后端 itext制作pdf工具类
-
WORD文件转换PDF方法1:利用Word转换的效率及适应性研究(JAVA环境) 博客分类: 文档处理
-
WORD文件转换PDF方法1:利用Word转换的效率及适应性研究(JAVA环境) 博客分类: 文档处理
-
TXT转换PDF方法1:利用WPS转换的效率及适应性研究(JAVA环境) 博客分类: 文档处理 文档格式转换javaWPSTXTPDF
-
java 使用itext分割pdf 博客分类: java javapdfitext
-
利用itext操作pdf从数据库导出大量数据--创建PDF表格(三) 博客分类: 开源组件
-
利用itext操作pdf从数据库导出大量数据--创建PDF表格(三) 博客分类: 开源组件
-
利用itext操作pdf从数据库导出大量数据--功能汇总(一) 博客分类: 开源组件 javaitextpdf水印