java调用com组件将office文件转换成pdf (同发csdn)

简介:

在很多企业级应用中都涉及到将office图片转换成pdf进行保存或者发布的场景,因为pdf格式的文档方便进行加密和权限控制(类似于百度文库)。总结起来目前将office文件转换

成pdf的方法主要有两种:
 1、利用jcob调用ms office的com组件,将office文档转换成pdf。
 2、利用jcob调用acrobat将office文档转换成pdf。

 在实际使用中发现,由于office不同所以本的文件格式不一致,所以任何第三方的转化工具都不可能完美的兼容所有office版本,最好的方案就是调用ms office提供的com组件来进

行转换,就算office高版本出现,我们要做的也只是升级我们的office版本而已。

 首先,利用office的com组件进行文档转换首先需要到jacob官网下载一个jacob.jar和jacob.dll,jacob.dll需要放到windows的system32下面,jacob.jar引用到java工程中。

 其次,编写代码,初始化word进程,并返回word的所有document对象:
         //打开word应用程序
         ActiveXComponent app = new ActiveXComponent("Word.Application");
         //设置word不可见,否则会弹出word界面
         app.setProperty("Visible", false);         
  //获得word中所有打开的文档,返回Documents对象
         Dispatch docs = app.getProperty("Documents").toDispatch();

 第三步,打开我们要转换的word文档:
  //调用Documents对象中Open方法打开文档,并返回打开的文档对象Document
         Dispatch doc = Dispatch.call(docs,
                                     "Open",
                                     "xxx.doc",
                                     false,
                                     true
                                     ).toDispatch();
 
 最后,另存我们刚才打开的文档,并关闭word进程:
  //调用Document对象的SaveAs方法,将文档保存为pdf格式
         Dispatch.call(doc,
                 "ExportAsFixedFormat",
                 "xxx.pdf",
                 wdFormatPDF        //word保存为pdf格式
                 );         //关闭文档
         Dispatch.call(doc, "Close",false);
         //关闭word应用程序
         app.invoke("Quit", 0);

 

附录:完整代码

 public static void word2PDF(String inputFile,String pdfFile){
         //打开word应用程序
         ActiveXComponent app = new ActiveXComponent("Word.Application");
         //设置word不可见,否则会弹出word界面
         app.setProperty("Visible", false);
         //获得word中所有打开的文档,返回Documents对象
         Dispatch docs = app.getProperty("Documents").toDispatch();
         //调用Documents对象中Open方法打开文档,并返回打开的文档对象Document
         Dispatch doc = Dispatch.call(docs,
                                     "Open",
                                     inputFile,
                                     false,
                                     true
                                     ).toDispatch();
         //调用Document对象的SaveAs方法,将文档保存为pdf格式
         Dispatch.call(doc,
                 "ExportAsFixedFormat",
                 pdfFile,
                 wdFormatPDF        //word保存为pdf格式
                 );
         //关闭文档
         Dispatch.call(doc, "Close",false);
         //关闭word应用程序
         app.invoke("Quit", 0);
     }


目录
相关文章
|
9天前
|
Java
java Itext创建pdf
java Itext创建pdf
12 0
|
3月前
|
消息中间件 缓存 NoSQL
GitHub上标星75k+超牛的《Java面试突击版》,分享PDF离线版
不论是校招还是社招都避免不了各种面试。笔试,如何去准备这些东西就显得格外重要。不论是笔试还是面试都是有章可循的,我这个有章可循‘说的意思只是说应对技术面试是可以提前准备。
|
4月前
|
Java
java读取本地目录的文件转换为list
java读取本地目录的文件转换为list
63 0
|
5月前
|
设计模式 架构师 Java
阿里P8架构师都要学习研究的java加强版23种设计模式神级PDF文档
说在前面的话 Java作为老牌纯正的编程语言,在规范性上有着天然优势。因此本版的设计模式讲解全部用Java语言来描述,并针对Java语言的特性对讲解内容做了相当大的改动。 不知道大家是否听过编程界的一段话:掌握设计模式相当于华山派的"气宗",是程序员的内功修为,虽然在同样的学习时间下,类似Python这种"剑宗"的开发模式见效更快,但是长远来看,"气宗"才是走向软件架构师以上级别的必由之路。 所以,掌握气宗就掌握了编程命脉,然而学习设计模式有四大境界: 接下来给大家分享的就是java溢彩加强版大话设计模式包含的内容知识点。 总目录 主要内容 本文是百万销量的经典畅销书《
99 0
|
4天前
|
Java Linux 数据安全/隐私保护
Java【代码 16】将word、excel文件转换为pdf格式和将pdf文档转换为image格式工具类分享(Gitee源码)aspose转换中文乱码问题处理
【2月更文挑战第3天】Java 将word、excel文件转换为pdf格式和将pdf文档转换为image格式工具类分享(Gitee源码)aspose转换中文乱码问题处理
21 0
|
9天前
|
Java 程序员 数据安全/隐私保护
分享一个word转pdf的工具类Aspose[java]
分享一个word转pdf的工具类Aspose[java]
13 0
|
2月前
|
Java
Java PDF 相关 1、拷贝多个PDF到一个PDF,并且文件大小变小,文本等信息保留
1、合并多个PDF,并且文件变小,后面添加的文本信息保留
19 0
|
2月前
|
XML Java 数据格式
|
2月前
|
安全 NoSQL Java
从安卓转到Java开发,我吃透了这份pdf,终于4面拿下美团offer
先说说个人情况吧,坐标广州,16年从一所普通二本大学毕业,毕业后在一家小公司干android开发,年薪在15w左右。转Java的契机是认识到了一个朋友,做Java后台的,经常跟他聊相关的内容,经过慎重考虑及个人的发展规划,所以就决定转型了。
|
2月前
|
Web App开发 JavaScript 前端开发
网页VUE纯前端在线预览编辑Office,支持doc/docx、xls/xlsx、ppt/pptx、pdf等格式
随着互联网技术的不断发展,越来越多的企业开始采用在线办公模式,微软Office Word 是最好用的文档编辑工具,然而doc、docx、xls、xlsx、ppt、pptx等格式的Office文档是无法直接在浏览器中直接打开的,如果可以实现Web在线预览编辑OffIce,肯定会还带来了更高效、便捷的办公体验,为我们的工作带来了更多可能性。
225 0

相关产品

  • 云迁移中心