Linux中使用命令行方式调用openoffice服务将word文件转为PDF

本文介绍如何在Linux环境下,利用命令行调用OpenOffice服务将Word(docx)文件转换成PDF。通过运行Python脚本topdf.py,可以实现文件格式的转换。此外,提到如果出现乱码问题可能与服务器缺少字体有关,而LibreOffice提供了一个更简单的转换方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux中使用命令行方式调用openoffice服务将word文件转为PDF

测试安装之后的openoffice用命令将docx文件转换为PDF

 

需要一份python的脚本程序,因为转换需要通过py程序去调用api处理,将下面程序保存到topdf.py文件:

#
# PyODConverter (Python OpenDocument Converter) v1.1 - 2009-11-14
#
# This script converts a document from one office format to another by
# connecting to an OpenOffice.org instance via Python-UNO bridge.
#
# Copyright (C) 2008-2009 Mirko Nasato <mirko@artofsolving.com>
# Licensed under the GNU LGPL v2.1 - http://www.gnu.org/licenses/lgpl-2.1.html
# - or any later version.
#
DEFAULT_OPENOFFICE_PORT = 8100
 
import uno
from os.path import abspath, isfile, splitext
from com.sun.star.beans import PropertyValue
from com.sun.star.task import ErrorCodeIOException
from com.sun.star.connection import NoConnectException
 
FAMILY_TEXT = "Text"
FAMILY_WEB = "Web"
FAMILY_SPREADSHEET = "Spreadsheet"
FAMILY_PRESENTATION = "Presentation"
FAMILY_DRAWING = "Drawing"
 
#---------------------#
# Configuration Start #
#---------------------#
 
# see http://wiki.services.openoffice.org/wiki/Framework/Article/Filter
 
# most formats are auto-detected; only those requiring options are defined here
IMPORT_FILTER_MAP = {
    "txt": {
        "FilterName": "Text (encoded)",
        "FilterOptions": "utf8"
    },
    "csv": {
        "FilterName": "Text - txt - csv (StarCalc)",
        "FilterOptions": "44,34,0"
    }
}
 
EXPORT_FILTER_MAP = {
    "pdf": {
        FAMILY_TEXT: { "FilterName": "writer_pdf_Export" },
        FAMILY_WEB: { "FilterName": "writer_web_pdf_Export" },
        FAMILY_SPREADSHEET: { "FilterName": "calc_pdf_Export" 
在Spring Boot中使用OpenOfficeWord转换PDF可以通过以下步骤实现: 1. 首先,确保已经安装了OpenOffice软件,并且OpenOffice服务已经启动。 2. 在Spring Boot项目的pom.xml文件中添加对OpenOffice JODConverter的依赖: ```xml <dependency> <groupId>org.jodconverter</groupId> <artifactId>jodconverter-spring-boot-starter</artifactId> <version>4.2.2</version> </dependency> ``` 3. 创建一个Controller类,用于接收Word文件并将其转换PDF。可以使用`JodConverter`类来实现转换功能。以下是一个简单的示例: ```java import org.jodconverter.DocumentConverter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; @RestController public class ConvertController { @Autowired private DocumentConverter documentConverter; @PostMapping("/convert") public String convertToPdf(@RequestParam("file") MultipartFile file) { try { // 将上传的Word文件转换PDF File inputFile = File.createTempFile("input", ".docx"); file.transferTo(inputFile); File outputFile = File.createTempFile("output", ".pdf"); documentConverter.convert(inputFile).to(outputFile).execute(); // 返回转换后的PDF文件路径 return outputFile.getAbsolutePath(); } catch (Exception e) { e.printStackTrace(); return "转换失败"; } } } ``` 4. 运行Spring Boot应用程序,并使用POST请求将Word文件上传到`/convert`接口。接口将返回转换后的PDF文件路径。 这样,你就可以使用Spring Boot和OpenOfficeWord文件转换PDF了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值