当前位置: 首页 > news >正文

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();
    }
 

http://www.xdnf.cn/news/834769.html

相关文章:

  • 2021-03-03 Linux module_param定义一个内核参数
  • UDK控制台命令概览
  • DateTime日期类型格式化显示
  • 6种查看Linux进程占用端口号的方法
  • 我的世界新手开荒攻略2024 萌新入坑指南
  • ExpandableListView说明及其用法
  • 网址收藏
  • 关闭浏览器弹出框onbeforeunload,onunload和onunloadcancel
  • 浅谈“游戏行业第三方支付平台“
  • 学习QT之容器类
  • 电脑无法打开Excel文件怎么办?
  • 如何获得CSDN下载积分和C币规则
  • Java网络编程:概述--快速入门
  • Linux 大文件如何切割与合并?
  • `simple-reactjs-app` 开源项目使用指南
  • python怎么存储数据_【Python】存储数据
  • 【zip密码破解】AZPR==>ARCHPR4.5
  • 机器人学笔记(2)正运动学
  • 打造专业级网页排版:全方位解析专业字体家族font-family实践与全球知名字体库导览
  • 如何使用PartitionMagic 8.0汉化版(图文说明)(转载)
  • debian12.5国内镜像源配置清单
  • 【WinForm】WinForm中的TableLayoutPanel控件、PropertyGrid控件、PictureBox控件、ListView控件、DataGridView控件的使用
  • 嵌入式系统电源管理软件比较
  • 技术干货 | GreatDB新一代读写分离架构,如何炼就近乎0损耗的性能?
  • C# Invoke和BeginInvoke的区别
  • python中shutil.copyfile的用法_python处理文件和文件的方法(shutil,filecmp ,MD5,tarfile,zip)...
  • FTP地址大全
  • GoLang之interface
  • PostgreSQL学习总结(13)—— PostgreSQL 目录结构与配置文件 postgresql.conf 详解
  • 骡友们推荐的各个学习英文网站的汇总