LibreOffice SymbolLibreOffice Symbol

Necessitamos da sua ajuda!

officehelper módulo

Para aceder a este comando...

Abra Ferramentas - Macros - LibreOfficeDev Básicas - Editar e selecione o contentor Macros da aplicação.


O módulo officehelper inicia um processo LibreOfficeDev, abrindo um canal nomeado com um nome aleatório. O officehelper associa scripts Python baseados em IDE a uma instância do LibreOfficeDev em execução, para fins de depuração.

Métodos

Lista de métodos no módulo officehelper

bootstrap

SessionManager


bootstrap

Abre um canal nomeado com um nome aleatório e utiliza o contexto local para aceder ao canal. Devolve o contexto do componente remoto, a partir do qual é possível obter o ServiceManager chamando getServiceManager() no objeto devolvido.

Ícone da dica

O SessionManager é uma alternativa preferível ao método bootstrap.


Sintaxe:

bootstrap(soffice: str, delays=(1,3,5,7), report: str): uno

Parâmetros:

soffice: Uma cópia binária específica do LibreOfficeDev, como uma versão portátil ou de desenvolvimento.

atrasos: Especifica várias tentativas de ligação. Por predefinição, há uma pausa de 1, 3, 5 e 7 segundos entre as tentativas.

report: Nome do método opcional utilizado para comunicar ou registar falhas de ligação.

Exemplo:


      # Iniciar o LO como serviço e obter o contexto do seu componente remoto
      import officehelper
      ctx = officehelper.bootstrap()
      # o teu código vai aqui
      
      # request context multiples times and report processing in console
      import officehelper as oh
      ctx = oh.bootstrap(delays=(5,10,15,20),report=print)
      # o teu código vai aqui
      
      # Utilizar uma versão binária específica
      from officehelper import bootstrap
      ctx = bootstrap(soffice=r"USB:\\PortableApps\\libO-7.6\\App\libreoffice\\program\\soffice.exe")
      # o teu código vai aqui
    

Esses pipes nomeados aleatoriamente têm de ser libertados da memória, conforme ilustrado:


      # named pipe memory cleanup
      smgr = ctx.getServiceManager()
      desktop = smgr.createInstanceWithContext("com.sun.star.frame.Desktop", ctx)
      desktop.terminate()
    

SessionManager class

Abre um canal nomeado com um nome aleatório e utiliza o contexto local para aceder ao canal. Devolve o contexto do componente remoto, a partir do qual é possível obter o ServiceManager chamando getServiceManager() no objeto devolvido. Além disso, o SessionManager liberta memória do processo LibreOfficeDev com nome aleatório e comunica as tentativas de ligação à consola.

Sintaxe:

SessionManager(soffice: str, delays=(1,3,5,7)): uno

Parâmetros:

Exemplo:

soffice: Uma cópia binária específica do LibreOfficeDev, como uma versão portátil ou de desenvolvimento.

atrasos: Especifica várias tentativas de ligação. Por predefinição, há uma pausa de 1, 3, 5 e 7 segundos entre as tentativas.


      def my_script():
          # o código do utilizador vai aqui
      
      g_exportedScripts = (my_script,)  # Pontos de entrada do LibreOffice
      
      if __name__ == "__main__":  # ponto de entrada para IDEs
          from officehelper import SessionManager
          com SessionManager() como ctx:  # contexto Python remoto
              my_script()
    
Ícone da dica

Utilize o método scriptforge.ScriptForge() para associar scripts Python executados no IDE a um serviço permanente LibreOfficeDev iniciado a partir da linha de comandos.