java word导出pdf

Wesley13
• 阅读 536

整体思路就是: 使用word模板引擎,将占位符(格式:{{title}})替换为查询出来的数据,再将替换完成的word转换为pdf

java word导出pdf

doc转pdf源码: https://gitee.com/java\_long/docs-to-pdf-converter.git

word模板引擎: https://github.com/Sayi/poi-tl.git

pom依赖:

<_**dependency**_> <_**groupId**_>com.deepoove</_**groupId**_> <_**artifactId**_>poi-tl</_**artifactId**_> <_**version**_>1.6.0-beta1</_**version**_> </_**dependency**_> <_**dependency**_> <_**groupId**_>docs-to-pdf-converter</_**groupId**_> <_**artifactId**_>docs-to-pdf-converter</_**artifactId**_> <_**version**_>1.8</_**version**_> </_**dependency**_>

代码实现:

//word模板替换 XWPFTemplate template = XWPFTemplate.compile("/Users/andy.l.an/IdeaProjects/ibuild-cscec82-contract/ibuild-cscec82-contract-portal/src/main/resources/word/subcontract/template/template.docx").render_(new HashMap<String, Object_>(){{ _ put("title", "Poi-tl 模板引擎Poi-tl 模板引擎Poi-tl 模板引擎Poi-tl 模板引擎Poi-tl 模板引擎Poi-tl 模板引擎Poi-tl 模板引擎Poi-tl 模板引擎Poi-tl 模板引擎Poi-tl 模板引擎Poi-tl 模板引擎Poi-tl 模板引擎"); }}); FileOutputStream out = new FileOutputStream("/Users/andy.l.an/IdeaProjects/ibuild-cscec82-contract/ibuild-cscec82-contract-portal/src/main/resources/word/subcontract/template/out_template.docx"); template.write(out); //word转换pdf FileOutputStream pdfout = new FileOutputStream("/Users/andy.l.an/IdeaProjects/ibuild-cscec82-contract/ibuild-cscec82-contract-portal/src/main/resources/word/subcontract/template/out_template.pdf"); DocxToPDFConverter docxToPDFConverter = new DocxToPDFConverter(new FileInputStream(new File("/Users/andy.l.an/IdeaProjects/ibuild-cscec82-contract/ibuild-cscec82-contract-portal/src/main/resources/word/subcontract/template/out_template.docx")), pdfout, true, true); docxToPDFConverter.convert(); out.flush(); out.close(); template.close()_;

踩坑记:

中文转换为空:

系统需要装word使用的字体:

mac: 已经要把字体放到/Library/Fonts 目录下, 仅仅通过字体集安装不行

点赞
收藏
评论区
推荐文章
技术小男生 技术小男生
4个月前
linux环境jdk环境变量配置
1:编辑系统配置文件vi/etc/profile2:按字母键i进入编辑模式,在最底部添加内容:JAVAHOME/opt/jdk1.8.0152CLASSPATH.:$JAVAHOME/lib/dt.jar:$JAVAHOME/lib/tools.jarPATH$JAVAHOME/bin:$PATH3:生效配置
光头强的博客 光头强的博客
4个月前
Java面向对象试题
1、请创建一个Animal动物类,要求有方法eat()方法,方法输出一条语句“吃东西”。创建一个接口A,接口里有一个抽象方法fly()。创建一个Bird类继承Animal类并实现接口A里的方法输出一条有语句“鸟儿飞翔”,重写eat()方法输出一条语句“鸟儿吃虫”。在Test类中向上转型创建b对象,调用eat方法。然后向下转型调用eat()方
Symbol卢 Symbol卢
1年前
markdwon常用语法
什么是markdwon?Markdown是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。Markdown语言在2004由约翰·格鲁伯(英语:JohnGruber)创建。Markdown编写的文档可以导出HTML、Word、图像、PDF、Epub等多种格式的文档。Markdown编写的文档后缀为.md,.markdow
Wesley13 Wesley13
1年前
java使用Aspose向word模板写入数据
_Aspose.Words是一个商业.NET类库,可以使得应用程序处理大量的文件任务。Aspose.Words支持Doc,Docx,RTF,HTML,OpenDocument,PDF,XPS,EPUB和其他格式。使用Aspose.Words可以在不使用Microsoft.Word的情况下生成、修改、转换和打印文档。__1、Aspose在ma
Wesley13 Wesley13
1年前
Java源码转Word
背景由于软件著作权需要提交源码文档前30连续页后连续30页,所以需要将Java源码提取Word文档中,然后打印出来。(容我吐槽一下,给源码仓库地址不好吗?还可以减少对纸质的耗费,也算是为环保做贡献啊!)小结MicrosoftWordJS,由于源码肯定是放到本地,使用js反而复杂了。WPSJavaA
Wesley13 Wesley13
1年前
java代码操作word模板并生成PDF
这个博客自己现在没时间写,等后面有时间了,自己再写。这中需求是在实际的项目开发中是会经常遇到的。下面我们先从简单入手一步一步开始。1.首先,使用word创建一个6行两列的表格。点击插入6行2列的表格,如图所示:!(https://img2018.cnblogs.com/blog/1527997/201910/15279972019
Wesley13 Wesley13
1年前
P2P技术揭秘.P2P网络技术原理与典型系统开发
Modular.Java(2009.06)\.Craig.Walls.文字版.pdf:http://www.t00y.com/file/59501950(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.t00y.com%2Ffile%2F59501950)\More.E
Wesley13 Wesley13
1年前
java调用PageOffice生成word
一、在开发OA办公或与文档相关的Web系统中,难免会遇到动态生成word文档的需求,为了解决工作中遇到导出word文档的需求,前一段时间上网找了一些资料,在word导出这方面有很多工具可以使用,jacob、poi、java2word、itext。jacob要求服务器必须是windows操作系统,服务器上还必须安装office软件,果断放弃!poi需要针对do
Wesley13 Wesley13
1年前
jacob安装配置完整版
1.如果要操作word用jacob当然是最好的。要操作Excel用poi是最棒的。其他的(ppt,pdf)我还没有研究不清楚。2.jacob好是好不过代码比较复杂。网络上有基于jacob封装好的jar:java2word。不过呢,目前java2word版本是有bug的(bug:用JUnit测试是没有任何问题的,但放在web上测试就出错了)。只好自
Wesley13 Wesley13
1年前
java将pdf文件转为word
importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.OutputStreamWriter;importjava.io.Writer;importorg.apache.pdfbox.pdmode
Wesley13 Wesley13
1年前
Java 在PDF文档中绘制图形
本篇文档将介绍通过Java编程在PDF文档中绘制图形的方法。包括绘制矩形、椭圆形、不规则多边形、线条、弧线、曲线、扇形等等。针对方法中提供的思路,也可以自行变换图形设计思路,如菱形、梯形或者组合图形等。使用工具:FreeSpire.PDFforJava(免费版)(https://www.oschina.net/action/GoToLi