从 Python 控制 Libreoffice Impress

2023-12-08

我正在编写一个面向演讲者和会议的应用程序。我用 Python 编写并专注于 Linux。

我想知道是否可以在 Linux 下使用 Python 以某种方式控制 LibreOffice Impress。

我想从我的 Python 应用程序启动一个 LibreOffice Impress 实例,并加载一些 .odp 文件。然后,我希望能够从 odp 接收一些信息,例如:上一张、当前和下一张幻灯片。或者以某种方式随时随地生成幻灯片的图像。

最后,我想实时控制LibreOffice。这是:使用方向键在幻灯片中移动;右边和左边。

我的想法是单独使用 python,但我不介意使用外部库或框架。

多谢。


@user3159253 的答案描述了如何连接到演示文稿文件,这是问题的第一部分。然后,要控制演示文稿,您需要使用X演示2 and XSlideShowController。这是一些执行此操作的代码,使用doc来自另一个示例的变量:

def runSlideShow(doc):
    presentation = doc.getPresentation()
    presentation.start()
    while not presentation.isRunning():
        pass
    presentation_controller = presentation.getController()
    presentation_controller.gotoNextSlide()
    print("isRunning() == %s" % presentation_controller.isRunning())

我改编了这段代码http://openoffice.2283327.n4.nabble.com/XPresentation2-returns-a-null-XSlideShowController-td2771599.html.

回复您的评论:您需要在代码底部添加以下内容, 类似于highlight.py中的内容。 您是否尝试运行 impress-code-highlighter 示例?

def do_runSlideShow(*args):
    ctx = XSCRIPTCONTEXT
    doc = ctx.getDocument()
    runSlideShow(doc)

g_exportedScripts = (do_runSlideShow,)
if __name__ == "__main__":
    doc = remote_get_doc()
    runSlideShow(doc)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Python 控制 Libreoffice Impress 的相关文章

随机推荐