问题描述
Python uno可以通过套接字与libreoffice-calc通信,常见的方法是从外壳启动libreOffice-calc:
soffice --calc --accept="socket,host=localhost,port=2002;urp;STaroffice.ServiceManager"
办公室可以与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
。
从菜单开始办公室时:
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
办公室无法与Socket通信python-uno,端口:2002未打开。
从菜单启动calc
时,如何使用python-uno操作lilbreoffice-calc
?
解决方法
这实际上不是Python问题,但是您需要为LibreOffice Calc修改.desktop文件并添加配置参数。 例如,您可以打开一个终端窗口并输入:
sudo nano /usr/share/applications/libreoffice-calc.desktop
然后找到Exec行,可能看起来像这样:libreoffice --calc%U 添加您的参数:
libreoffice --calc --accept="socket,host=localhost,port=2002;urp;StarOffice.ServiceManager" %U
请确保在命令末尾保留%U,以使其像以前一样正常工作。
保存,现在应该可以了!