centos 将 文件转化为 pdf

本文介绍如何通过unoconv工具将Office文档转换为PDF格式。首先安装unoconv,随后启动OpenOffice并设置其在后台运行。为了兼容X环境,还需创建虚拟显示窗口,最后执行转换命令。

 1、 安装 unoconv ,下载自己相应的rpm包。http://dag.wieers.com/home-made/unoconv/

  我下载的是 http://packages.sw.be/unoconv/unoconv-0.1-1.el5.rf.noarch.rpm

  执行 rpm -ivh unoconv-0.1-1.el5.rf.noarch.rpm

 

 

 2、 启动openoffice 

 

   soffice -accept="socket,port=8100;urp;"  &

 

  别忘记后面的  & ,尤其是在服务器上的时候,需要在后台运行

 

 

 

3、执行  Xvfb:1 -screen 0 800x600x16 & ,因为OPENOFFICE需要用到X,所以要建立一个虚拟窗口.



4、然后执行  unoconv -f pdf  aa.doc

注明:1、 aa.doc 是该路径下的一个需要转换的文件。
         2、注意要转换文件的编码格式(utf-8)



 

 

在Linux系统中,可利用Libreoffice将doc文件输出为pdf文件。以下是不同场景下的具体操作方法: ### 普通情况 在centos7系统中,安装好libreoffice后,使用以下命令可以将doc文件转换为pdf文件。其中`demo.docx`代表需要转换的doc文件,`--outdir`用于指定转换后文件存放的文件夹。若要将转换后的文件存放在当前目录,可使用如下命令: ```bash soffice --headless --invisible --convert-to pdf ./demo.docx --outdir ./ ``` 此方法能有效完成文件转换,避免了一些显示相关的问题,适合在服务器等环境中使用[^2]。 ### 处理显示相关问题 若在执行转换命令时遇到类似`X11 error: Can't open display`的显示问题,可通过设置`DISPLAY`环境变量来解决。以下示例展示了如何将`test.ppt`转换为pdf文件,对于doc文件转换同样适用: ```bash export DISPLAY=:0.0 && libreoffice --headless --invisible --convert-to pdf --outdir ./ ./test.ppt ``` 将`test.ppt`替换为实际的doc文件名称,即可实现doc文件pdf文件的转换。这种方式通过指定显示环境,解决了因显示问题导致的转换失败情况[^1]。 ### Java代码实现转换 除了使用命令行,还可以在Java代码中使用Libreoffice实现doc文件pdf文件的转换。以下是一个示例代码: ```java import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.artofsolving.jodconverter.OfficeDocumentConverter; import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration; import org.artofsolving.jodconverter.office.OfficeManager; import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.regex.Pattern; public class DocToPdfConverter { public static void main(String[] args) { // 配置OfficeManager DefaultOfficeManagerConfiguration configuration = new DefaultOfficeManagerConfiguration(); // 设置Libreoffice的安装路径 configuration.setOfficeHome("/path/to/libreoffice"); OfficeManager officeManager = configuration.buildOfficeManager(); officeManager.start(); // 创建转换器 OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager); // 定义输入和输出文件 File inputFile = new File("input.doc"); File outputFile = new File("output.pdf"); // 执行转换 converter.convert(inputFile, outputFile); // 停止OfficeManager officeManager.stop(); } } ``` 请将`/path/to/libreoffice`替换为实际的Libreoffice安装路径,`input.doc`替换为实际的doc文件名称,运行此代码即可完成转换[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值