Python libreoffice 使用 uno 设置边距值、最佳高度和打印文档

Posted

技术标签:

【中文标题】Python libreoffice 使用 uno 设置边距值、最佳高度和打印文档【英文标题】:Python libreoffice set margin values, optimal height and print document with uno 【发布时间】:2017-12-10 08:34:02 【问题描述】:

我尝试使用集成在 Libreoffice 安装中的 Python 与 libreoffice 进行交互。而且我在任何地方都找不到如何在 PageStyle 中设置边距,以设置最佳行高并打印几份文档。或者,也许,我可以在 Libreoffice 中编写宏并从 python 运行它。下面的代码不起作用。

pageStyle = document.getStyleFamilies().getByName("PageStyles")
page = pageStyle.getByName("Default")
page.LeftMargin = 500

附:对不起我的英语。

【问题讨论】:

尝试更具体地说明您要实现的目标 一开始我想设置边距。 什么操作系统? 操作系统是Windows。 【参考方案1】:

在大多数版本的 LibreOffice 中,默认样式的名称是“默认样式”。在 Apache OpenOffice 中,它被命名为“默认”。

这是完整的代码。例如,将文件命名为change_settings.py

import uno

def set_page_style_margins():
    document = XSCRIPTCONTEXT.getDocument()
    pageStyle = document.getStyleFamilies().getByName("PageStyles")
    page = pageStyle.getByName("Default Style")
    page.LeftMargin = 500

g_exportedScripts = set_page_style_margins,

在我的 Windows 10 系统上,此脚本位于目录 C:\Users\<your username>\AppData\Roaming\LibreOffice\4\user\Scripts\python 下。您需要创建最后两个目录,并且大小写必须匹配。

现在,在 LibreOffice Writer 中,转到 工具 -> 宏 -> 运行宏。 展开到 我的宏 -> change_settings 并选择宏名称 set_page_style_margins

有关使用 LibreOffice 的 Python 的完整介绍:

https://wiki.openoffice.org/wiki/Python/Transfer_from_Basic_to_Python http://christopher5106.github.io/office/2015/12/06/openoffice-libreoffice-automate-your-office-tasks-with-python-macros.html

【讨论】:

以上是关于Python libreoffice 使用 uno 设置边距值、最佳高度和打印文档的主要内容,如果未能解决你的问题,请参考以下文章

LibreOffice UNO:设置样式(可以使用 Java、VB、Python、C++、任何使用 UNO API 的语言提供)

无法在 python 中为 ubuntu 16.04 上的 libreoffice 导入 uno

LibreOffice Calc 上的 Python UNO,重新定位光标

Python UNO(libreoffice):如何为工作表启用自动过滤器

如何让 LibreOffice 无头 Calc 计算以保存 uno 的新值?

如何使用 UNO 遍历 OpenOffice/LibreOffice 中的整个文档