我们已经准备好了,你呢?

2026我们与您携手共赢,为您的企业形象保驾护航!

安装:略

2.的环境

该环境的部署地点和安装路径一致,通常设置为:C:\ Files\\。在从事文档类型变更的编程工作时,能够选用此环境,也能够选用别的环境来实施开发。倘若直接选用此环境,由于此环境中原本没有预装 pip,因此需要在此环境中进行 pip 的安装。

2.1安装pip

下载 get-pip.py 文件:

通过安全隐身链接获取指定资源,保存到本地文件中,文件命名为 get-pip.py

安装 pip:

Linux/macOS

# 设置镜像源环境变量
设置环境变量PIP_INDEX_URL为https://pypi.tuna.tsinghua.edu.cn/simple
# 运行安装脚本
python get-pip.py

(CMD)

设置环境变量PIP_INDEX_URL,其值为https://pypi.tuna.tsinghua.edu.cn/simple
python get-pip.py

执行 get-pip.py 时,需附加 --index-url 选项,

使用命令行执行get-pip.py脚本,并指定镜像源地址为清华大学,路径为https://pypi.tuna.tsinghua.edu.cn/simple

2.2使用 uno 进行文档格式转换

UNO( )是一种基于对象概念的编程框架,它赋予开发者跨语言沟通的途径。通过该框架,程序员能够借助多种编程语言,例如 Java 等,与系统进行对接和功能拓展,用以完成文档的生成、读取、编辑,以及操作用户界面等任务。

UNO接口的工作原理和功能

UNO 接口借助远程服务框架达成不同单元的对接和信息流转。使用者借助 UNO 接口可在各单元间构建关联,完成跨单元的信息交互和效能增强。比如,能运用 UNO 接口自动生成文档报表、进行成批文档处置、执行特定格式数据的输入输出等操作。

UNO接口在中的应用场景

文档能够借助UNO接口实现自动化管理,例如批量修改Word或ODT文档,亦能创建报告框架。借助相关编程工具,可编写自动化程序用于文档操作,以此提升作业效能。该接口支持跨多个操作环境运行,包括、Mac及Linux系统。

UNO接口的历史背景和最新发展

它是另一个版本,增添了很多新颖特性,同样采用MPL 2.0许可证发布代码。自2011年正式推出后,它一直不断进步,增加了对PDF文件、微软Word文档等格式的兼容性,并且持续改进用户感受和各项功能。

API 文档:

官方文档转换示例:

设置制表位宽度为四,关闭制表符模式,设置Python缩进偏移量为四
#
该文件属于自由办公软件项目的一部分。
#
这份源代码格式须遵循莫扎瑞公共条款的规定,具体内容在后续条款中详细阐述。
许可协议,第二版,若该MPL副本未随本文件一同分发
这个文件,你可以在地址http://mozilla.org/MPL/2.0/处获取到它。
#
import argparse
import os
import sys
导入os.path中的abspath函数, basename函数, isdir函数, join函数, splitext函数
import uno
import unohelper
在 com.sun.star.beans 包中导入 PropertyValue 类型
在 com.sun.star.connection 模块中存在一种名为 NoConnectException 的异常类型
程序路径等于美元符号大写字母字母字母大写字母字母斜杠字母小写字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母字母
SOFFICE连接地址为uno:socket,主机关联localhost,端口为2083,协议类型为urp,组件上下文为StarOffice.ComponentContext
def connect_soffice():
建立与远程正在运行的LibreOffice的连接
本地上下文由uno获取组件环境得到
实例由本地上下文服务管理器建立,名称为resolver
"com.sun.star.bridge.UnoUrlResolver",本地上下文
    )
    try:
SOFFICE_CONNECTION_URI这个连接地址通过解析器得到了处理,随后生成了远程上下文信息,并将其赋值给了变量remote_context
    except NoConnectException:
引发异常情况,无法与LibreOffice建立连接。
返回远程上下文服务管理器实例化对象,根据指定上下文创建
"com.sun.star.frame.Desktop", 远程上下文环境
    )
进行文件格式转换,需要输入源文件路径,指定目标文件路径,并明确转换后的类型
源地址赋值为格式化后的源文件路径,其中反斜杠替换为正斜杠
dest_url指向一个路径,该路径以file://开头,后面跟着dest_file的内容,dest_file中的反斜杠需要替换成正斜杠
    soffice = connect_soffice()
文档通过 soffice 加载特定网址的组件
链接地址, 新标签页, 默认值, (属性值(名称等于"隐藏", 值等于"是"),)
    )
    opts = (
属性名设定为覆盖,属性值设为是
属性名称设定为过滤名称,属性值转换为指定类型,。
    )
    try:
文档保存至指定网址,参数配置为opts。
    finally:
        doc.dispose()
def is_dir(value):
    if not isdir(value):
引发参数类型错误,说明该值并非目录,具体为这个值
    return value
def main():
解析器实例化为参数解析对象,命名为文档转换器,程序标识为指定值
解析器增加参数名为源目录,
                        type=is_dir,
用于递归转换此目录中检索到的文档资料
解析器增加参数名为转换目标类型,作为辅助信息提示:比如转换成MS Word 97格式。
解析器增加参数名为扩展名,该参数为必填项,用于指定文件后缀,用户需提供具体值,否则程序无法执行,此参数直接影响后续处理流程,确保正确识别目标文件类型,其值不可为空,必须符合预设格式要求,否则将引发错误提示,影响整体功能运行,因此务必谨慎输入,避免因格式不符导致程序中断,影响使用体验。
辅助说明转换后文件的扩展名,例如 doc 或 docx
解析器增加参数输出目录,
                        type=is_dir,
转换后的文件会保存在这个文件夹里
    args = parser.parse_args()
当遍历指定目录时,依次获取当前路径名,子目录列表和文件列表
        for name in file_names:
源文件路径是将目录路径的绝对路径与文件名连接而成的结果
目标文件路径等于输出目录与文件名基础部分拼接,再追加扩展名,其中文件名基础部分由原文件名移除扩展名后构成,各部分之间用分隔符连接,最终结果以指定扩展名结尾
将源文件转换为目标文件,转换格式为指定类型
输出转换后的文件名,源文件是src_file,目标文件是dest_file
if __name__ == "__main__":
    main()
这个文本行设定了四个编辑器配置项的值,分别是缩进宽度为四,软制表位数为四,以及扩展制表符为开启状态。

3.使用 的 环境进行开发

在创建项目时,要使用该环境。如下图:

LibreOffice Python环境安装 pip 使用 uno 文档格式转换 开发者指南_LibreOffice UNO接口 使用场景 跨平台支持 文档处理_#coding python

1.启动

启动"C:\Program Files\LibreOffice\program\soffice.exe"时采用无头模式,同时保持界面隐藏,禁止生成崩溃报告,不加载默认设置,不显示标志,不运行首次启动向导,并接受来自"socket,host=localhost,port=2002;urp;StarOffice.ServiceManager"的连接请求

2.文档转换

# coding: utf-8
import os
从urllib.parse模块中导入quote函数
import uno
SOFFICE连接地址为uno:socket形式,主机名为localhost,端口为2002,协议类型为urp,组件上下文为StarOffice.ComponentContext
属性值赋值为uno获取的类对象,该对象类型为com.sun.star.beans.PropertyValue
def safe_file_url(file):
文件路径通过os.path.abspath函数获取绝对路径,然后赋值给file_path变量
file_path中的反斜杠转换成了斜杠,这个操作改变了路径的表示方式
文件路径经过特殊字符处理之后,生成一个符合规范的URL格式字符串,这个字符串以file://开头,后面跟着处理过的文件路径,确保路径中的冒号和斜杠不会被错误解释,从而实现安全的字符串连接
    return file_url
启动连接到 soffice_desktop 的过程,首先建立必要的网络通道,接着验证用户身份,然后同步数据,最后完成整个连接操作。
    # 初始化
    local_context = uno.getComponentContext()
resolver由本地上下文的服务管理器实例化出,其标识为"com.sun.star.bridge.UnoUrlResolver",上下文信息为本地上下文
    desktop = None
    try:
        # 连接 LibreOffice
        remote_context = resolver.resolve(SOFFICE_CONNECTION_URI)
桌面实例由远程上下文服务管理器创建,其服务标识为com.sun.star.frame.Desktop,并传入远程上下文作为参数
    except Exception as ex:
        print(ex)
    return desktop
进行文件格式转换,需要输入源文件路径,指定目标文件路径,并明确转换后的类型
    # 文件名处理
源文件网址经过安全处理,赋值给变量src_file_url
安全化处理后的文件链接赋值给des_file_url变量
输出要将源文件链接转为目标文件链接,源文件链接是 {src_file_url},目标文件链接是 {des_file_url}
    # 转换选项
    opts = (
        PropertyValue(Name="Overwrite", Value=True),
        PropertyValue(Name="FilterName", Value=to_type),
    )
连接到soffice_desktop, 完成soffice_desktop的获取
    if soffice_desktop is None:
        print("连接失败")
        return
    doc = None
    try:
        # 载入文档
文档对象由 soffice_desktop 通过从指定网址加载组件而创建出来
源文件网址,新页面打开,参数为零,属性包含隐藏,值为真
        )
        # 导出文档
文档保存至指定路径,路径信息为des_file_url,相关选项配置为opts
    except Exception as ex:
        print(ex)
    finally:
        if doc is not None:
            doc.dispose()
当程序作为主程序运行时,请执行以下操作:
将名为中国民间神话故事小报.docx的文件转换成名为中国民间神话故事小报.pdf的文件,转换格式为writer_pdf_Export
转换文件格式,源文件位于D:\AISoftware\myoffice2pdf\守株待兔.pptx,目标文件存放在D:\AISoftware\myoffice2pdf\守株待兔.pdf,采用impress_pdf_Export模式进行操作
将文件从指定路径的Excel格式转换为PDF格式,目标文件存储在另一路径下,转换时需调用特定函数
将文件从 PPT 格式转为 PDF 格式,源文件路径为 D:\AISoftware\myoffice2pdf\企业文化宣传.pptx,目标文件路径为 D:\AISoftware\myoffice2pdf\企业文化宣传.pdf,转换时使用的命令为 impress_pdf_Export
将文件从 D:\AISoftware\myoffice2pdf\企业文化宣传.pptx 转化为 D:\AISoftware\myoffice2pdf\企业文化宣传.jpg 格式,使用的是 draw_jpg_Export 这种导出方式
将文件从D:\AISoftware\myoffice2pdf\企业文化宣传.pptx转换到D:\AISoftware\myoffice2pdf\企业文化宣传.png,所使用的转换方式是draw_png_Export

能够提供多种途径导出为同一类型文件格式。比如,输出为PDF文档时,可以设定多种不同的参数选项:

二维码
扫一扫在手机端查看

本文链接:https://by928.com/11066.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线