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);
            }
    }
相关推荐
laocui14 分钟前
Ubuntu22.04开机运行程序
linux·运维·服务器
zhougl99611 分钟前
Apache HttpClient 5 用法-Java调用http服务
java·http·apache
spjhandsomeman14 分钟前
各个历史版本mysql/tomcat/Redis/Jdk/Apache/gitlab下载地址
java·redis·mysql·jdk·tomcat·gitlab
遇见火星16 分钟前
Linux 防火墙 firewalld 实战配置教程!
linux·防火墙·firewalld
卡戎-caryon19 分钟前
【Linux网络与网络编程】12.NAT技术&&内网穿透&&代理服务
linux·运维·服务器·网络·网络协议·https
未来影子22 分钟前
面试中的线程题
java·数据库·面试
为美好的生活献上中指22 分钟前
java每日精进 5.18【文件存储】
java·开发语言·minio·七牛云存储·s3·七牛云
朱包林23 分钟前
day10-别名-MD5,aide-堡垒机
linux·运维·安全·ubuntu·centos·云计算
不再幻想,脚踏实地30 分钟前
Spring AOP从0到1
java·后端·spring
编程乐学(Arfan开发工程师)31 分钟前
07、基础入门-SpringBoot-自动配置特性
java·spring boot·后端