【发布时间】:2020-12-19 04:02:53
【问题描述】:
Python uno 可以通过 socket 与 libreoffice-calc 通信,常用的方法是从 shell 启动 libreOffice-calc:
soffice --calc --accept="socket,host=localhost,port=2002;urp;StarOffice.ServiceManager"
soffice 可以用 socket 和 port:2002 与 python-uno 通信。
sudo netstat -anp |grep soffice
tcp 0 0 127.0.0.1:2002 0.0.0.0:* LISTEN 3115/soffice.bin
unix 2 [ ACC ] STREAM LISTENING 45712 3115/soffice.bin /tmp/OSL_PIPE_1000_SingleOfficeIPC_7fb3858dfd518f4aa054b3e7cf720
unix 3 [ ] STREAM CONNECTED 45702 3115/soffice.bin
unix 3 [ ] STREAM CONNECTED 45716 3115/soffice.bin
然后你可以打开一个python shell,import uno来操作calc。
现在我从菜单中打开一个calc:
当你从菜单启动 soffice 时:
sudo netstat -anp |grep soffice
unix 2 [ ACC ] STREAM LISTENING 49386 3200/soffice.bin /tmp/OSL_PIPE_1000_SingleOfficeIPC_7fb3858dfd518f4aa054b3e7cf720
unix 3 [ ] STREAM CONNECTED 49390 3200/soffice.bin
unix 3 [ ] STREAM CONNECTED 48919 3200/soffice.bin
soffice无法与socket通信python-uno,端口:2002没有打开。
lilbreoffice-calc 从菜单启动时如何使用 python-uno 操作calc?
【问题讨论】:
-
问题是你想从菜单启动 LibreOffice Calc,参数和你从 shell 启动时一样吗?
-
没有相同的参数,那怎么修改呢?
标签: python uno communicate