前阵子由于项目业务的需要,领导要求研究一下如何实现将word转换成pdf,经过一番的百度找到了一个比较简单的方法(本人比较懒),只需要导入一个JAR包和十几行代码就能够实现转换,而且转换的效果比预想的要好。但是也有很大的局限性,这种方式只能依赖于在windows系统下且需要在你本机上安装office相关的软件才能完成转换(微软office组件或WPS组件),这也是为什么这种方式最终被领导摒弃掉的最大因素,但是如果你只是想单纯的在自己的demo项目上使用和学习的话,还是很不错的;但是想要用在商业用途上这里是强烈不建议的。(借鉴了很多大牛的文章,学习了)

-----------------------------------使用时需要准备的内容-----------------------------------
JAR包:com.jacob
MAVEN依赖:

<dependency><groupId>com.jacob</groupId><artifactId>jacob</artifactId><version>1.19</version>
</dependency>

jar包下载地址(Maven Respository):
点我去下载

dll库文件就在你下载的JAR包的文件夹里面:

除了这些基本的东西之外还需要在你的本机上放置两个dll库文件才能完成转换,下面上细节:
1.找到你本地的JRE目录,如下图:
2.在本机电脑上的目录下也需要存放这两个文件:
----------------------------主要JAVA代码----------------------------------------------------

所有工作准备就绪,翠花,上代码
logger对象是用的slf4j的日志jar包:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;

创建logger对象的方式:

protected Logger logger = LoggerFactory.getLogger(getClass());

方法中的参数source代表你本机上想要转换的word文件的路径,target是你转换之后pdf文件存放的路径,pdf文件不需要预先创建,转换的时候会自动帮你创建:

 /*** 将word转换成pdf(用jacob)*/public void wordToPdf(String source, String target) {if (FileUtil.illegalFileName(target)) {logger.info("illegal file path: " + target);return;}// 不保存待定的更改int wdDoNotSaveChanges = 0;// word转PDF格式int wdFormatPdf = 17;logger.info("Word转PDF开始启动...");long start = System.currentTimeMillis();ActiveXComponent app = null;try {app = new ActiveXComponent("Word.Application");app.setProperty("Visible", false);Dispatch docs = app.getProperty("Documents").toDispatch();logger.info("打开文档:" + source);Dispatch doc = Dispatch.call(docs, "Open", source, false, true).toDispatch();logger.info("转换文档到PDF:" + target);File tofile = new File(target);if (tofile.exists()) {tofile.delete();}Dispatch.call(doc, "SaveAs", target, wdFormatPdf);Dispatch.call(doc, "Close", false);long end = System.currentTimeMillis();logger.info("转换完成,用时:" + (end - start) + "ms");} catch (Exception e) {logger.info("Word转PDF出错:" + e.getMessage());} finally {if (app != null) {app.invoke("Quit", wdDoNotSaveChanges);}}}

最终转换的效果如下:
本机的doc文件:
转换后的pdf文件:
总结,总体来说如果你是为了想要实现一个简单的word转pdf的功能,这种方式还是很不错的;但是由于这种方式存在很大的局限性,对系统和软件的依赖性较强,推荐可以用在自己平时写的demo项目上或者是毕设项目上,其他的场景不建议使用此方法。

用JAVA实现简单的WORD转PDF 亲测有效相关推荐

  1. Java使用aopse实现word转换pdf

    Java使用aopse实现word转换pdf 需要引用aspose包,引入操作我写了一个博客,地址如下 https://blog.csdn.net/weixin_46713508/article/de ...

  2. java 使用jacob实现word转pdf

    java 使用jacob实现word转pdf(IDEA Maven项目) 步骤: 一. 插件与jar包下载 SaveAsPDFandXPS 下载地址: http://www.microsoft.com ...

  3. Java实现Excel和word转pdf加水印,复制及可用

    Java实现Excel和word转pdf加水印,复制及可用 时隔大半年,之前朋友,今天突然找我说,他们有个需求要做这东西.想起来之前自己照着官方文档写,也走了不少坑.今天就索性写个,也为了方便以后使用 ...

  4. Java使用XDOC实现word,pdf等格式的生成及转换

    Java使用XDOC实现word,pdf等格式的生成及转换 最近业务上有个需求,要将生成的简报以word或者pdf等格式下载下来 刚开始我设想的是用io流的方法直接写,但是这样无疑是比较麻烦的 直到我 ...

  5. POI给WORD添加水印(亲测可用)

    POI给WORD添加水印(亲测可用) 最近要做电子合同,客户提出为了安全性要将合同中都添加水印,这个之前在网上看到过,貌似使用POI很好加.去网上一搜发现,清一色的只有一篇文章,并且这段代码是用不了的 ...

  6. Win10下永久性关闭自动更新(可恢复更新)最简单有效的方法《亲测有效》

    Win10下永久性关闭自动更新(可恢复更新)最简单有效的方法<亲测有效> 1.首先进入C:\Windows\System32路径下,找到wuaueng.dll文件 [外链图片转存失败,源站 ...

  7. Java工具类实现word转pdf结果几乎一模一样

    Background [封装好的工具类][转换效果99%][无水印] 实现技术[Aspose] 这里给出需要的依赖包 aspose-words-15.8.0.jar和word-license.xml, ...

  8. windows/linux服务器上java使用openoffice将word文档转换为PDF(亲测可用)

    一. 前言 1. 开发过程中经常会使用java将office系列文档转换为PDF, 一般都使用微软提供的openoffice+jodconverter 实现转换文档. 2. openoffice既有w ...

  9. Java通过IText导出word和pdf

    最近做的项目中需要用到导出word和pdf的功能(还有图表),在网上找了很多资料,最后敲定用了IText组件,下面是我项目中的一个Demo,记录了一下,希望对需要的人有帮助. 相关jar包下载地址:h ...

最新文章

  1. 【点云论文速读】点云分层聚类算法
  2. 潘石屹 python 知乎_如何看待地产大佬潘石屹微博宣布学习python这件事?对我们有什么启发?...
  3. java实现单词替换_java – 正则表达式将空格和单词替换为单词的toFirstUpper
  4. Windows8 Metro开发 (04) : 保存/读取本地应用程序设置
  5. gin context和官方context_Gin框架系列01:极速上手
  6. Study Linux --- Shell Script
  7. java vector_Java Vector sureCapacity()方法与示例
  8. cordova APP 检查更新
  9. ListView 中使用onItemClick和onItemLongClick的常见问题
  10. 30 | 答疑文章(二):用动态的观点看加锁
  11. linux shell读取文件,shell脚本中读取文件的方法
  12. UE4 Pak 相关知识总结
  13. android 电视安装apk,给一切安卓智能电视安装第三方软件市场
  14. sitemesh应用
  15. html文本框的margin,HTML DOM Style marginTop 属性 | 菜鸟教程
  16. android锁机如何制作教程视频教程,Android一枚简单锁机样本的测试与浅析
  17. Excel表数据很少,内存占用很大
  18. 成都瀚网科技:抖音发作品到底需要多久的时间才能够给流量呢?
  19. 统计学笔记——统计推断——参数估计
  20. 大端小端与MSB和LSB

热门文章

  1. spark远程桌面连接:使用机器人平台
  2. python模拟登录网易163邮箱并发送SOS邮件
  3. oracle em13c配置,EM13C添加agent记录两个报错
  4. 关于plist文件存储方式(swift)
  5. wsappx把电脑卡爆了解决办法
  6. 微博为何做绿洲?社交化、生活化和垂直化
  7. LeetCode题解(0592):分数加减运算(Python)
  8. 部署卡巴斯基网络版6.0:安装控制中心和服务器端推送
  9. JavaScript数据结构与算法 - 树
  10. 48 个免费的设计素材网站收好,以后不怕没资源用!