我正在编写一个面向演讲者和会议的应用程序。我用Python编写它,重点放在Linux上。在
我想知道在Linux下是否可以用Python控制LibreOffice Impress。在
我想启动LibreOffice Impress的一个实例,从Python应用程序加载一些.odp文件。然后,我希望能够从odp收到一些信息,比如:上一张,当前的和下一张幻灯片。或者在旅途中生成幻灯片的图像。在
LibreOffice终于要控制了。这是:使用方向键,左右移动幻灯片。在
想法是单独使用python,但我不介意使用外部库或框架。在
非常感谢。在
Tags:
看看AOO UNO。您还可以检查一些应用程序项目,如docvert。这个框架是在LO和apacheoo之间共享的,但是由于两个项目的单独开发,可能会有一些细微的差异。在
对于类似代码的简单教程,您可以看看this project。其余的取决于你的实际需求,你应该学习相应的unoapi,它(几乎)是语言中立的。在
最后,我找到了一种使用Python以优雅而简单的方式解决这个问题的方法。Im使用一个套接字来连接Impress并控制它,而不是库或api。在
在文章的最后,你可以阅读全文,说明如何控制Impress。这很简单,也很神奇。在
您使用Python发送消息来打动(即在某个端口监听),它接收消息并根据您的请求执行操作。在
您必须在应用程序中启用此“远程控制”功能。我用这个解决了我的问题。在
谢谢你的回复!。在
LibreOffice Impress远程协议规范
通过UTF-8编码字符流进行通信。 使用librtu编码部分
TCP协议
有关设置和初始握手的更多特定于TCP的详细信息 写入,但实际的消息协议与蓝牙相同。在
消息格式
消息由一行或多行组成。第一行是消息描述, 进一步的行可以添加任何必要的数据。消息以空行结尾。在
即“消息\n\n”或“消息\n数据\n数据2…\n\n”
你必须一直读到一个空行(即双倍 新行)已到达,以允许将来的协议扩展。在
初始化
连接后,服务器发送“LO_server_server_PAIRED”。 (即“lou SERVER_SERVER_PAIRED \n \n”通过流发送。)
随后,如果正在运行幻灯片,服务器将发送任一幻灯片放映启动, 如果没有幻灯片放映,则幻灯片放映已完成。(详见下文。)
然后,当前服务器实现继续发送所有幻灯片注释和预览 给客户。(应更改此设置以防止内存问题,并进行预览 已实现请求机制。)
命令(客户端到服务器)
当 命令已发送。所有更改都将以信号形式返回给客户端。 (这是为了允许多个客户机请求不同的更改等情况)
[方括号]中的任何行都是可选的,如果不需要,应该省略。在
上一次转换
转到滑梯 幻灯片编号
演示文稿开始
演示文稿停止
presentation_resume//在演示文稿后继续,空白屏幕。
从gsoc2013开始,这些命令被扩展到现有协议中,因为服务器端可以容忍未知命令,所以这些扩展不会破坏向后兼容性
状态/数据(服务器到客户端)
幻灯片放映结束//(如果开始时没有幻灯片放映,也会传输幻灯片)
slideshow_started//(如果幻灯片在启动时运行,也会传输) 幻灯片数量 当前幻灯片编号Ber
幻灯片注释 幻灯片编号 [Notes]//注释是html文档,还可能包含\n换行符, //也就是说,客户应该一直读到空行。
slide_updated//服务器上的幻灯片已更改 currentSlideNumber
slide_preview//提供幻灯片的预览图像。 幻灯片编号 image//一个base64编码的png图像。
从gsoc2013开始,这些命令被扩展到现有的协议中,因为远程端也会忽略所有未知的命令(gsoc2012 android实现就是这样),因此保持了向后兼容性
@user3159253的答案描述了如何连接到演示文件,这是问题的第一部分。然后,要控制显示,需要使用XPresentation2和XSlideShowController。下面是一些代码,使用另一个示例中的
doc
变量:我从http://openoffice.2283327.n4.nabble.com/XPresentation2-returns-a-null-XSlideShowController-td2771599.html改编了这段代码。在
回复您的评论:您需要在代码底部添加以下内容, 类似于highlight.py. 你试过运行impress代码荧光笔的例子吗?在
^{pr2}$相关问题 更多 >
编程相关推荐