JavaWeb简单实现word转pdf

前言

近期有个需求是将word转换成pdf,由于博主我之前没做过,于是开启了百度编程。总的来说零零散散的资料很多,可真正通用的却不多,于是自己整理了一下,实现此需求的方法很多,具体可参考 点我直达 这篇文章,本文只介绍springboot+openoffice这种方法。

一、openoffice下载

首先点我下载,完后安装自定义路径或者默认安装,如下:

在这里插入图片描述
点击安装后出现以下页面,稍等片刻后会自动下载,莫慌!!
在这里插入图片描述
安装包下载后直接安装,安装步骤就不过多赘述,一直下一步就是,注意安装路径,程序中会用到。

二、代码-pom依赖

此步骤可能有坑,不过我已经踩过了,就简单跟大家介绍下吧,此步骤下载相关依赖包可能会报各种错: 1.此问题大都是maven配置文件里指向的私服如果是默认的会比较慢导致下载失败,建议指向国内阿里云库,此步骤可自行百度。 2.本地maven库存在版本冲突,建议先删除本地库,然后重新下载,这也是我遇到的坑。(有另外的坑欢迎补充,大体就是maven的坑) 。。。 温馨提示:(如果有童鞋此步骤花费时间过长被maven版本搞奔溃不想继续找问题的话,可试着将我的本地maven库直接覆盖你本地的库试试,试之前做好备份哦,也不失为一种办法。)此路径下载:点我下载

		<!-- word转pdf所需jar begin -->
        <dependency>
            <groupId>org.jodconverter</groupId>
            <artifactId>jodconverter-core</artifactId>
            <version>4.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.jodconverter</groupId>
            <artifactId>jodconverter-spring-boot-starter</artifactId>
            <version>4.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.jodconverter</groupId>
            <artifactId>jodconverter-local</artifactId>
            <version>4.2.2</version>
        </dependency>
        <!-- word转pdf所需jar end -->
复制代码

三、代码-配置文件

application配置如下:

jodconverter.local.enabled=true
# 设置OpenOffice主目录 
jodconverter.local.office-home: D:\\OpenOffice4.1.7
# OpenOffice进程重启前的最大进程数
jodconverter.local.max-tasks-per-process: 10
# 开启多个OpenOffice进程,每个端口对应一个进程
jodconverter.local.port-numbers: 8100,8101,8102
复制代码

如我本机安装到D:\OpenOffice4.1.7路径,其具体文件如下所示:

在这里插入图片描述

四、代码-前端页面

html代码如下:

<input type="button" value="PDF" style="width:100%;"  onclick="convertPdf()">
复制代码

js代码如下:

function convertPdf() {
        $.ajax({
            type: 'POST',
            url: '/convertPdf',
            success: function (result) {

            },
            error: function () {

            }
        });
    }
复制代码

五、代码-controller层

代码如下所示:

import org.jodconverter.DocumentConverter;
import org.jodconverter.office.OfficeException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.io.File;

@Controller
public class WordToPdf {

	@Autowired
	private DocumentConverter converter;

	@RequestMapping("/convertPdf")
	@ResponseBody
	public String toPdf(String filepath) throws OfficeException {

		filepath="D:\\test.docx";	//被转换的word文档
		File word = new File(filepath);
		//截取字符串把word的后缀改为pdf
		String pdfpath= filepath.substring(0,filepath.lastIndexOf("."))+".pdf";
		File pdf = new File(pdfpath);
		//文件转换
		converter.convert(word).to(pdf).execute();
		return "true";
	}
}
复制代码

六、效果展示

此地址正是java代码中输入的地址,可根据具体需求修改输入输出文档的路径:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自juejin.im/post/5ecb70fd5188254300449703