java实现word转pdf

前两天写了一篇博客,讲的是word、ppt、pptx等文件转pdf,我研究文件转化也是因为工作需要,后来发现写的功能在我本地(window 10)没有问题,但是发到现场(Linux)word转pdf转化出来时0k,没办法只能再换一种方式,今天就给大家介绍Apache OpenOffice。OpenOffice是开源的办公软件套件,包可以在多个操作系统上运行,包括Windows、Mac OS X和Linux等。
一、下载OpenOffice
OpenOffice下载连接

二、解压依赖包

powershell 复制代码
tar -zxvf 压缩包名称

三、安装依赖

powershell 复制代码
# 移动到指定目录下
cd zh-CN/RPMS
# 安装依赖
yum localinstall *.rpm

四、启动OpenOffice程序

powershell 复制代码
# 这里127.0.0.1只能是本机访问,占用端口设置为8100
nohup /opt/openoffice4/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &

五、测试

用openoffice需要集成相关依赖

测试的时候我们需要用到jodconverter-2.2.2.jar

需要注意的是如果服务器的字体不全,转出来的文件可能乱码或者空白或者都是框

powershell 复制代码
# 解压压缩包
unzip jodconverter-2.2.2.zip
# 进入解压后的文件夹
cd /jodconverter-2.2.2/lib
# 运行测试
java -jar jodconverter-cli-2.2.2.jar /root/1.doc /usr/1.pdf

六、项目集成

java 复制代码
  <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-local</artifactId>
            <version>1.0.3</version>
        </dependency>
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-transformer-msoffice-word</artifactId>
            <version>1.0.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.pdfbox</groupId>
            <artifactId>pdfbox</artifactId>
            <version>2.0.17</version>
        </dependency>
        <dependency>
            <groupId>org.apache.pdfbox</groupId>
            <artifactId>fontbox</artifactId>
            <version>2.0.17</version>
        </dependency>
		<dependency>
		    <groupId>com.artofsolving</groupId>
		    <artifactId>jodconverter</artifactId>
		    <version>2.2.2</version>
		</dependency>
		<dependency>
		    <groupId>org.openoffice</groupId>
		    <artifactId>juh</artifactId>
		    <version>3.0.1</version>
		</dependency>
		<dependency>
		    <groupId>org.openoffice</groupId>
		    <artifactId>ridl</artifactId>
		    <version>3.0.1</version>
		</dependency>
		<dependency>
		    <groupId>org.openoffice</groupId>
		    <artifactId>unoil</artifactId>
		    <version>3.0.1</version>
		</dependency>
java 复制代码
import java.io.*;
import com.artofsolving.jodconverter.DocumentConverter;
import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;

public static void docToPdf(String sourcePath, String targetPath){
        File sourceFile = new File(sourcePath);
            File pdfFile = new File(targetPath);
            OpenOfficeConnection connection = new SocketOpenOfficeConnection("127.0.0.1", 8100);
            try {
                connection.connect();
                DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
                converter.convert(sourceFile, pdfFile);
                connection.disconnect();
            } catch (Exception e) {
                log.error(e.getMessage(),e);
            }
    }
相关推荐
fyakm3 分钟前
Linux文件搜索:grep、find命令实战应用(附案例)
linux·运维·服务器
qq_3363139324 分钟前
java基础-字符串
java
巴渝小禹1 小时前
【Ubuntu】虚拟机 Ubuntu 挂载 宿主机 Windows文件夹
linux·ubuntu
我只会写Bug啊1 小时前
Vue文件预览终极方案:PNG/EXCEL/PDF/DOCX/OFD等10+格式一键渲染,开源即用!
前端·vue.js·pdf·excel·预览
二进制person2 小时前
Java EE初阶 --多线程2
java·开发语言
洛克大航海3 小时前
解锁 PySpark SQL 的强大功能:有关 App Store 数据的端到端教程
linux·数据库·sql·pyspark sql
007php0073 小时前
某游戏大厂 Java 面试题深度解析(四)
java·开发语言·python·面试·职场和发展·golang·php
西西学代码4 小时前
Flutter---个人信息(5)---持久化存储
java·javascript·flutter
陈果然DeepVersion4 小时前
Java大厂面试真题:Spring Boot+Kafka+AI智能客服场景全流程解析(五)
java·spring boot·kafka·向量数据库·大厂面试·rag·ai智能客服
FAFU_kyp4 小时前
Spring Boot 邮件发送系统 - 从零到精通教程
java·网络·spring boot