网上有很多 word 转 PDF 的例子,有些是根据 调用安装的服务来实现的,但是如果要实现跨平台或者在没有安装服务的服务器上面转,就很少有例子了。
我也是经过千辛万苦的调试和在 stackoverflow 网站的才能找到答案, 难解决的问题一般都是老外的网站啊。。没办法。
不多说了,我直接上代码。挺简单的。但是花了我好长时间啊!
引入jar
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.15</version> </dependency> <dependency> <groupId>fr.opensagres.xdocreport</groupId> <artifactId>org.apache.poi.xwpf.converter.pdf</artifactId> <version>1.0.6</version> </dependency>
编码:
/** *@Description: docx 转 PDF *@Author:杨攀 *@Since: 2016年11月24日下午2:01:58 *@param docPath *@param pdfPath */ public static void convertDocxToPDFByPOI(String docxPath,String pdfPath){ try { InputStream doc = new FileInputStream (new File (docxPath)); XWPFDocument document = new XWPFDocument (doc); PdfOptions options = PdfOptions.create (); OutputStream out = new FileOutputStream (new File (pdfPath)); PdfConverter.getInstance ().convert (document, out, options); } catch (Exception ex) { ex.printStackTrace (); } }
以上的确可以转 PDF ,而且在手机中实现转 PDF ,但是效果太差,没办法,只好转变思路, 在服务器上面转PDF ,手机端下载PDF来实现功能。
服务端 选择 Jacob 来实现;
步骤:
1、下载 Jacob 包, 但是maven 只下载 jar , 没有包括想对于的 dll 文件。 所以需要手动去下载
地址: https://sourceforge.net/projects/jacob-project/files/jacob-project/
选择自己版本对应的下载,我选择的是 1.14.3
2、下载的Jacob包中有几个dll, 64位的,86位的,拷贝对应的 dll 到 文件放置到C:\Windows\system32目录下,C为你的操作系统盘符,根据自己的系统版本放置不同的dll文件,名称上有写的,或 将dll文件放到当前JDk和jre的lib目录中
3、编码
引入 jar
<dependency> <groupId>net.sf.jacob-project</groupId> <artifactId>jacob</artifactId> <version>1.14.3</version> </dependency>
// PDF格式 值为17 private static final int wdFormatPDF = 17; /** *@Description: docx 转 PDF *@Author:杨攀 *@Since: 2016年11月24日下午4:14:19 *@param docxPath *@param pdfPath *@return */ public static boolean convertDocxToPDFByJacob(String docxPath,String pdfPath){ // 打开word应用程序 ActiveXComponent app = null; try { // 打开word应用程序 app = new ActiveXComponent ("Word.Application"); // 设置word不可见 app.setProperty ("Visible", false); // 获得word中所有打开的文档,返回Documents对象 Dispatch docs = app.getProperty ("Documents").toDispatch (); // 调用Documents对象中Open方法打开文档,并返回打开的文档对象Document Dispatch doc = Dispatch.call (docs, "Open", docxPath, false, true).toDispatch (); // 调用Document对象的SaveAs方法,将文档保存为pdf格式, 为pdf的插件 SaveAsPDFandXPS.exe 安装。(否则无法调用SaveAs方法) /*- Dispatch.call(doc,"SaveAs",pdfPath,wdFormatPDF //word保存为pdf格式宏,值为17); */ // word保存为pdf格式宏,值为17 Dispatch.call (doc, "ExportAsFixedFormat", pdfPath, wdFormatPDF); // 关闭文档 Dispatch.call (doc, "Close", false); return true; } catch (Exception e) { e.printStackTrace (); return false; }finally{ if(app != null){ // 关闭word应用程序 app.invoke ("Quit", 0); } } }
经过测试, 转换的 PDF 格式, 非常满意!!! 嘿嘿
相关推荐
java实现word转pdf 效果及使用教程可以参考 https://blog.csdn.net/u012775558/article/details/121530527
java 利用利用poi+itextpdf进行word转pdf,里面有源码和依赖还有效果图,无需安装插件,感觉是一种比较好的方法
word 转PDF的几种方式 1、NPOI读取Word,只支持后缀名为.docx的,用iTextSharp生成pdf文件,存在读取word的段落,表格及先后顺序,导致生成的也不一致。 2、通过读取字节判断。 3、通过Aspose.Words来操作,在项目...
专业版的pdf软件,也就是700多兆大小的那个软件,具有转pdf的功能,但是,本人在使用过程中发现,通过visio画图工具所画的图形和汉字,在插入到word后,然后将word转pdf中,转换时常常不能将文字正常显示。...
使用Libreoffice 完美实现在线word转pdf.支持word和linux两个系统
网络上有很多种Word转PDF的方式(openoffice,jacob,POI),但都不是很完美,要不依赖三防包还要下载dll文件,要不转换不完美,还不支持中文,我的转换方式使用eclipse自带的swt包即可,程序引用swt的jar后直接运行
将word转换成pdf确实有很多种方案!最近正好需要做一个这样的功能,需求是将word模板进行签名后转换为pdf。...这里记录一下最终的方案:利用poi+itextpdf进行word转pdf。此资源按包含源码和maven依赖。
word转pdf工具word转pdf工具word转pdf工具word转pdf工具word转pdf工具
java实现word转pdf功能,并实现去水印,本人测试真实有效。 操作简单,傻瓜式教程!!! 提供mvn安装本地依赖命令。
大家在编辑Word的时候,会设置大纲目录,在看内容时通过导航页即可快速转到相应位置,但是转成pdf格式时,这个导航页就没了,本文旨在介绍Word转PDF带有导航页或书签详细步骤。转成pdf的方法,这里主要介绍两种,...
自己项目中用到的技术,word转PDF然后实现在线预览的功能,代码可以运行 .
纯Java代码实现word转pdf,所需要用到的jar包。 https://juejin.cn/post/7087036463035973640/
Aspose.Words Java实现word转pdf文件(高效不失真)。提供license文件。提供源代码。提供jar。下载即可直接使用。Word2PdfUtil.java、license.xml、Aspose.Words-jdk16.jar
word转pdf word转pdfword转pdfword转pdfword转pdfword转pdf
word转pdf jar下载,word转pdf jar下载,word转pdf jar下载word转pdf jar下载
云夹word转pdf工具(pdf转换成word转换器)是一款功能强大好用的word转pdf且pdf转换成word软件工具,df转换成word工具是一款Word文档格式转换成Pdf文档格式工具,是PDF与Word相互转换工具,用户可以很容易的得到转换...
java用的Word转PDF工具jar包,
JAVA利用poi完成word转pdf,内容包括两个现成工具类和使用到的所有jar包,易用简单,word转pdf在实际项目中有很多使用,工具类中已经包括了字节流,以及变参的替换
代码用maven方式引入jar包 无嵌入式处理word文件,工具类包括 1. docx转html处理 ...3. word转pdf处理 Word2Pdf.java (poi itext7) 4. word模板填充 WordUtils.java (poi XWPF) 5. 序列id生成 6. 文件处理通用工具类