java实现word转pdf

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

二、解压依赖包

tar -zxvf 压缩包名称

三、安装依赖

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

四、启动OpenOffice程序

# 这里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
需要注意的是如果服务器的字体不全,转出来的文件可能乱码或者空白或者都是框

# 解压压缩包
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

六、项目集成

  <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>
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);
            }
    }

你可能感兴趣的:(java,word,pdf,OpenOffice,linux)