本方法则依赖于windows平台,Adobe的Acrobat软件在pdf转word中功能良好,Jacob可以实现java代码和COM组件之间的互操作。

经过本人实践后,发现此方法效果比较能接受。

使用pdfbox转换的结果原来的格式已经没有了,并且表格也没有解析出来。但是使用Acrobat转换的结果能较完整的保留原来的格式。下面的解决方案主要介绍使用Acrobat实现的方法。

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;public class Pdf2Word {public static void test(String inPath,String outPath) {//pdfActiveX PDDoc对象 主要建立PDF对象ActiveXComponent app = new ActiveXComponent("AcroExch.PDDoc");//PDF控制对象Dispatch pdfObject = app.getObject();long start = System.currentTimeMillis();//打开PDF文件,建立PDF操作的开始Dispatch.call(pdfObject, "Open", new Variant(inPath));Variant jsObj = Dispatch.call(pdfObject, "GetJSObject");Dispatch.call(jsObj.getDispatch(), "SaveAs", outPath, "com.adobe.acrobat.docx");app.invoke("Close");long end = System.currentTimeMillis();System.out.println("耗时:"+(end-start)/1000+"秒");System.out.println("转换成功");}
}

代码比较简短,代码中“AcroExch.PDDoc”是Acrobat安装后注册的COM组件;组件方法参考:https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/#t=Acro12_MasterBook%2FIAC_API_OLE_Objects%2FOLE_Automation2.htm。

使用方法
环境配置
Jacob
从网站查找并下载Jacob。 Jacob.jar引入到项目中;dll文件有两个根据自己电脑的平台选择合适的文件放在 %JAVA_HOME%\jre\bin 或 %JAVA_HOME%\bin 目录下。如果发现识别不到dll文件,可以重启系统或者把dll放到windows相应的dll文件夹下,如:C:\Windows\System32

Acrobat
下载后直接安装,文章结尾有整理好的下载链接,创作不易,收点小小费用,介意的请绕行。

资源里是adobe acrobat pro dc 2022中文安装程序及其破解补丁,

由于资源大小限制,acrobat安装文件及破解文件放网盘里了。

下载后有任何问题,可留言,本人不定时查看一一回复。

首先要确保在windows平台上。调用时可以对代码进行再组织,封装成一个方法。需要注意的是转换过程比较耗时,如果转换一个大文件或者短时间内转换多个文件可以考虑多线程。

资源链接

java借助Acrobat实现pdf转word相关推荐

  1. java按照模板导出pdf或者word

    一.java按照模板导出pdf (一)制作模板 1.在word里制作模板 因为PDF常用的软件不支持编辑,所以先用Word工具,如WPS或者Office新建一个空白Word文档,里面制作出自己想要的样 ...

  2. java 打印jpg、pdf、word

    转自: https://blog.csdn.net/vatxiongxiaohui/article/details/83985896 目录 一.Java的打印简介 二.Java打印实现 2.1 JPG ...

  3. 使用 Acrobat 将 PDF 转换为 Word

    在 Acrobat 中打开 PDF. 单击右侧窗格中的导出 PDF 工具. 选择 Microsoft Word 作为导出格式,然后选择 Word 文档.

  4. 【java】生成【PDF模板 / word模板】-- java生成PDF的第一步

    步骤 word -> xml -> ftl 1. 填写word模板 所有需要填充的字段,都要用${字段名}表示出来(下图包含list格式的填写) 2. word 转 xml word模板整 ...

  5. java实现pdf转word,解决个别排版错乱问题

    项目中要实现客户上传完pdf,上传成功后直接就转成word格式的,之前网上一些免费的转出来的word大致还行,但是有些排版就错乱了,如下图: 下面这个是用java改造后的,效果如下,排版整齐,和pdf ...

  6. java pdf转word

    Java 是一种用于编写跨平台应用软件的面向对象的编程语言.如果你想将 PDF 转换为 Word 文档,你可以使用以下几种方法: 在线工具:可以使用在线 PDF 转换工具,例如 smallpdf.co ...

  7. java adobe pdf转word_原来PDF转Word这么简单!现在才知道

    原来PDF转Word这么简单!PDF文件转换在办公中还是比较常见的操作,文件格式用途就会不一样.例如,PDF文件大多数用来传输和阅读,Word文件常常用来编辑或者撰写文案,有些情况需要将PDF转Wor ...

  8. 编写java实用工具-针对未压缩的pdf转word,(java实现),压缩过的pdf勿进

    压缩过的pdf勿进! 压缩过的pdf勿进! 压缩过的pdf勿进! 重要的事情说三遍. 主要是提供两种解决办法 第一种:转成同级目录word 第二种:直接console打印 java的好处之一就是取之不 ...

  9. Java:使用Java调用打印机进行打印(JPG、PDF和Word三种文件格式)

    目录 一.Java的打印简介 二.Java打印实现 2.1 JPG图片文件格式打印实现 2.2 PDF文件格式打印实现 2.3 Word文件格式打印实现 2.3.1 Word文件采用jacob插件进行 ...

  10. java freemarker转PDF和Word

    最近项目要求做一个freemarker转PDF和Word的功能,因为以前没用过,遇到了很多坑所以在这里记录一下,方便自己以后用到,不说了直接上代码: 1.先说PDF的 (1)先做一个模板(用HTML页 ...

最新文章

  1. plsql 参数中in out in的区别讲解
  2. 我的一些项目管理经验
  3. 阿里云的linux服务器简单部署网站80端口
  4. Spring jdbc的搭建
  5. Element UI格式化日期
  6. pycharm remote 远程项目 同步 本地_利器:PyCharm本地连接服务器搭建深度学习实验环境的三重境界...
  7. SMM - 系统管理模式,SMRAM
  8. C++笔记(9) 模板,向量和栈
  9. alwayson10-创建alwayson高可用性组侦听器
  10. (Maven配置)Failed to read artifact descriptor for xxx:jar解决方法
  11. 单内核OS与微内核OS结构比较
  12. 在Unity中接入Xbox360手柄
  13. HTML篇三——(1)
  14. 【装机】将mbr硬盘转换为gpt
  15. axure侧弹层遮罩_Axure实现遮罩效果
  16. SharePoint 2010 电子书下载网站推荐
  17. Mac上使用Docker Desktop启动Kubernetes,踩坑后终于搞掂
  18. 一个人可以办三个支付宝账号,这三个支付宝账户之间有什么影响?
  19. [渝粤教育] 首都师范大学 走进舞蹈艺术 参考 资料
  20. 开个魔兽1.22的maphack版

热门文章

  1. ltspice导入spice模型_LTspice 怎么自建 MOSFET 模型
  2. 推荐vs code十大强大的插件!
  3. 计算机考研复试经典考题汇总(一次刷新世界观)
  4. 科幻电影中的人工智能——中科院计算所王元卓
  5. 51单片机流水灯三种实现方法
  6. 一、应广单片机的Mini-C语言基础
  7. win7nodejs压缩包配置环境变量
  8. 阿里电话面试(算法工程师)
  9. 计算机课怎么管纪律,作为班主任,班级纪律应该怎么管?丨班级圆桌派
  10. vss跟tfs_从VSS 2005迁移到TFS 2010后,VS 2008出现“差异”错误