在非常多企业级应用中都涉及到将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引用到javaproject中。

其次,编写代码。初始化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);

     }

java调用com组件将office文件转换成pdf的更多相关文章

  1. dvi文件和将dvi文件转换成pdf格式

    dvi文件和将dvi文件转换成pdf格式 Latex只能把tex文件编译成dvi文件, 在cmd 中: 使用xdvi查看dvi格式的文件 若用texstudio编辑tex文件,则可直接将已编译成功的. ...

  2. 关于DWG文件转换成PDF

    最近有这样一个需求,客户会提供DWG文件,因为DWG文件是不能直接在网页上显示的,所以必须对他做处理,要求是转换成PDF格式.我查了很久的资料,很多都是基于C#和.NET的方法,而且都是说的很模糊,不 ...

  3. 在Linux下将HTML文件转换成PDF文件

    今天要写一个上交的作业,本来是想用Office Word来写的,但是,我的Office貌似不能用了,但是,Linux下的LibreOffice写出的文档,在打印的时候是经常出现乱码的.所以,后来想到可 ...

  4. C# 将PowerPoint文件转换成PDF文件

    PowerPoint的优势在于对演示文档的操作上,而用PPT查看资料,反而会很麻烦.这时候,把PPT转换成PDF格式保存,再浏览,不失为一个好办法.在日常编程中和开发软件时,我们也有这样的需要.本文旨 ...

  5. html文件转换成pdf和word

    1.html文件转成pdf 采用jar包有itext-asian.jar.itextpdf-5.5.5.jar.itext-pdfa-5.5.5.jar.itext-xtra-5.5.5.jar,为了 ...

  6. ofd格式文件转换成pdf格式的方法

    ofd格式文件很多人还比较陌生,很多人接收到文件都不知如何打开阅读,把文件发给对方,还需要对方安装个专门的阅读软件,我们还有另一个办法,就是将OFD文件转换为PDF格式文件,然后把PDF格式文件发给对 ...

  7. Java利用aspose-words将word文档转换成pdf(破解 无水印)

    首先下载aspose-words-15.8.0-jdk16.jar包 http://pan.baidu.com/s/1nvbJwnv 引入jar包,编写Java代码 package doc; impo ...

  8. Java实现批量将word文档转换成PDF

    先导入words的jar包 需要jar包的私聊我发你 代码如下:import com.aspose.words.Document;import java.io.File; public class W ...

  9. python3将docx转换成pdf,html文件,pdf转doc文件

    直接上代码 # -*- encoding:utf-8 -*- """ author:lgh 简单的doc转pdf,html,pdf转doc脚本 依赖库pdfminer3k ...

随机推荐

  1. 洛谷P4016 负载平衡问题 费用流

    这道题还是很好的. 考察了选手对网络流的理解. 首先,任意两个相邻点之间的运货量时没有限制的. 我们可以将相邻点之间的流量建为无限大,单位费用设为 1,代表运输一个货物需耗费一个代价. 由于题目要求最 ...

  2. 洛谷P3834 【模板】可持久化线段树 1 主席树

    Code: #include<cstdio> #include<algorithm> using namespace std; const int maxn = 2000000 ...

  3. css实现步骤条

    实现效果 html <ul class="steps"> <li class="active">申请完成</li> < ...

  4. layero和index

    zIndex:layer.zIndex, success:function(index,layero){ //layero 为当前层的DOM对象 var zIndex = layer.index; $ ...

  5. [HEOI2012]采花(树状数组+离线)

    听说这题的所发和HH的项链很像. 然而那道题我使用莫队写的... 这是一个套路,pre数组加升维(在线). 记录一个\(pre\)数组,\(pre[i]\)代表上一个和i颜色相同的下标. 我们把询问离 ...

  6. jQuery第二课 点击弹出一个提示框

    选择器允许您对元素组或单个元素进行操作. jQuery 选择器 在前面的章节中,我们展示了一些有关如何选取 HTML 元素的实例. 关键点是学习 jQuery 选择器是如何准确地选取您希望应用效果的元 ...

  7. 【BZOJ 1150】[CTSC2007]数据备份Backup

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 选择的连接肯定是相邻的点对. 那么我们处理出来长度为n-1的数组a 其中a[i-1] = dis[i]-dis[i-1] 那么问题就 ...

  8. Maven配置Spring+SpringMVC+MyBatis(3.2.2)Pom 以及 IntelliJ IDEA 怎样打开依赖视图

    Maven配置Spring+SpringMVC+MyBatis(3.2.2)Pom 配置原则: 利用依赖,将所需的jar包加载到project中. 先依赖主要jar包 Spring + Spring ...

  9. 12、NIO、AIO、BIO二

    一.NIO2快速读写文件 写完之后记得flush一下,NIO2不能自行创建文件,需要在文件中判断一下. package com.zxc.L; import org.junit.Test; import ...

  10. C语言:constkeyword、结构体

    前几节内容的解说,主要是内存地址及指针的分析.这一节解说一下easy混淆的keywordconstant及结构体的知识. 一.constkeyword 1. 字符常量的指针 char const *p ...