代码之家  ›  专栏  ›  技术社区  ›  showkey

python uno如何操作从菜单打开的libreoffice calc?

  •  0
  • showkey  · 技术社区  · 4 年前

    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 .

    现在我打开一个 从菜单:

    enter image description here

    当您从菜单启动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未打开。

    如何操纵 使用python uno时 lilbreoffice-calc 从菜单开始?

    0 回复  |  直到 4 年前
        1
  •  0
  •   Karl    4 年前

    这不是一个真正的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保持在命令末尾,以使其像以前一样运行。

    保存,现在它应该工作了!

    推荐文章