JAVA-Word转PDF各种版本实现方式

使用:SaveAsPDFandXPS + jacob (Windows操作系统下,电脑里有office)

SaveAsPDFandXPS 下载地址  :  

 jacob 的jar包 下载地址 : 

先安装SaveAsPDFandXPS ,安装成功后 , 打开jacob的jar包  ,里面的结构应该是这样的

把jacob.jar 放到项目下  ,  然后 这里注意 把  两个后缀为dll的文件 放到 jre目录bin的里面   必须放进去  不然会报错(java.lang.NoClassDefFoundError) ,

一:java jacob 报错:Could not initialize class com.jacob.com.ComThread,以下解决办法

1、把jacob.jar文件加入到classpath 和项目lib下;
2、把jacob.dll在 C:\Program Files\Java\jdk1.5.0_08\bin、C:\Program Files\Java\jdk1.5.0_08\jre\bin、C:\WINDOWS\system32    目录下各.放一份
3、把jacob.dll放在tomcat的bin中

二:maven项目中添加本地的jar包—jacob.jar

第一步:在项目的文件夹下创建一个文件夹用来存放jacob.jar包。

               如下图:reseources—lib—jacob.jar  

                 

第二步:在<dependencies></dependencies>中添加依赖

         <!--添加本地的jacob.jar包-->
        <dependency>
            <groupId>com.jacob</groupId>
            <artifactId>jacob</artifactId>
            <version>1.19</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/lib/jacob.jar</systemPath>
        </dependency>
其中:1、<scope>system</scope>指的是使用本地jar包

            2、<systemPath>${basedir}/src/main/resources/lib/jacob.jar</systemPath>
                   指的是jar包存放的路径。

 

以下代码:

import java.io.File;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
 
 
private static final int wdFormatPDF = 17;// PDF 格式    
    public static void wordToPDF(){    
 
        ActiveXComponent app = null;  
        Dispatch doc = null;  
        try {      
            app = new ActiveXComponent("Word.Application");      
            app.setProperty("Visible", new Variant(false));  
            Dispatch docs = app.getProperty("Documents").toDispatch();    
 
            //转换前的文件路径
            String startFile = "F:\\新建文件夹\\我是word版本" + ".doc";
            //转换后的文件路劲
            String overFile =  "F:\\新建文件夹\\我是转换后的pdf文件"  + ".pdf";
 
            doc = Dispatch.call(docs,  "Open" , startFile).toDispatch();  
            File tofile = new File(overFile);      
            if (tofile.exists()) {      
                tofile.delete();      
            }      
            Dispatch.call(doc,"SaveAs", overFile, wdFormatPDF);      
        } catch (Exception e) {      
            System.out.println(e.getMessage());      
        } finally {  
            Dispatch.call(doc,"Close",false);  
            if (app != null)      
                app.invoke("Quit", new Variant[] {});      
        }  
        //结束后关闭进程   
        ComThread.Release();
    }
 
 
    public static void main(String[] args) {
        wordToPDF();
    }
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值