其他分享
首页 > 其他分享> > world转pdf-(速成简单-包含配置文件)

world转pdf-(速成简单-包含配置文件)

作者:互联网

本篇文章详细介绍了如何将world快速转成pdf

1、代码:

package com.example.demo.utils;

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import org.springframework.stereotype.Repository;

import java.io.File;

@Repository
public class WorldToPdf {
    public static void wToPdfChange(String wordFile, String pdfFile) {//wordFile word 的路径  //pdfFile pdf 的路径
        System.out.println("转换开始...");
        ActiveXComponent app = null;
        try {
            // 打开word文件
            app = new ActiveXComponent("Word.Application");
            // 获得word中所有打开的文档
            Dispatch documents = app.getProperty("Documents").toDispatch();
            System.out.println("打开文件: " + wordFile);
            // 打开文档
            Dispatch document = Dispatch.call(documents, "Open", wordFile, false, true).toDispatch();
            // 如果文件存在的话,不会覆盖,会直接报错,所以我们需要判断文件是否存在
            File target = new File(pdfFile);
            if (target.exists()) {
                target.delete();
            }
            System.out.println("另存为: " + pdfFile);
            Dispatch.call(document, "SaveAs", pdfFile, 17);
            // 关闭文档
            Dispatch.call(document, "Close", false);
        } catch (Exception e) {
            System.out.println("转换失败" + e.getMessage());
        } finally {
            //关闭office
            app.invoke("Quit", 0);

        }
    }

    public static void main(String[] args) {
        WorldToPdf.wToPdfChange("D:/test/1.docx", "D:/test/1.pdf");

    }
}

2、maven坐标

<!--world 转pdf-->
		<dependency>
			<groupId>net.sf.jacob-project</groupId>
			<artifactId>jacob</artifactId>
			<version>1.14.3</version>
		</dependency>

3、注意事项:

有可能报nullPointException异常

解决方案:将jacob1.14.3x86.dll 和jacob1.14.3x64.dll 两个文件放到 jdk/bin 和jdk/jre/bin 

然后重新在项目中配置该jdk (建议使用jdk1.8)

重启项目大功告成!!!

备注:两个配置文件在我的资源中可以看到,直接下载解压即可!

标签:配置文件,System,Dispatch,println,pdf,jacob,world,wordFile,pdfFile
来源: https://blog.csdn.net/qq_43538925/article/details/120569211