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);
            }
    }
相关推荐
NE_STOP1 小时前
MyBatis-mybatis入门与增删改查
java
孟陬4 小时前
国外技术周刊 #1:Paul Graham 重新分享最受欢迎的文章《创作者的品味》、本周被划线最多 YouTube《如何在 19 分钟内学会 AI》、为何我不
java·前端·后端
想用offer打牌4 小时前
一站式了解四种限流算法
java·后端·go
chlk1234 小时前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑5 小时前
Ubuntu系统安装CodeX出现问题
linux·后端
华仔啊5 小时前
Java 开发千万别给布尔变量加 is 前缀!很容易背锅
java
改一下配置文件5 小时前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
也些宝6 小时前
Java单例模式:饿汉、懒汉、DCL三种实现及最佳实践
java
Nyarlathotep01136 小时前
SpringBoot Starter的用法以及原理
java·spring boot