♥ Doe para nosso projeto! ♥

officehelper módulo

Para acessar este comando...

Abra Ferramentas - Macros - LibreOfficeDev BASIC - Editar e selecione o container Macros da aplicação.


O módulo officehelper inicia um processo LibreOfficeDev, abrindo um pipe nomeado com um nome aleatório. O officehelper vincula 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 pipe nomeado com um nome aleatório e utiliza o contexto local para acessar o pipe. Retorna o contexto do componente remoto, a partir do qual é possível obter o ServiceManager chamando getServiceManager() no objeto retornado.

Ícone Dica

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 conexão. Por padrão, há uma pausa de 1, 3, 5 e 7 segundos entre as tentativas.

report: Nome de método opcional usado para relatar ou registrar falhas de conexão.

Exemplo:


      # Inicie o LO como um serviço e obtenha o contexto do componente remoto
      import officehelper
      ctx = officehelper.bootstrap()
      # coloque seu código aqui
      # request context multiples times and report processing in console
      import officehelper as oh
      ctx = oh.bootstrap(delays=(5,10,15,20),report=print)
      # coloque seu código aqui
      # Use 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")
      # coloque seu código aqui
    

Esses pipes nomeados aleatoriamente precisam ser liberados da memória, conforme mostrado a seguir:


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

SessionManager class

Abre um pipe nomeado com um nome aleatório e utiliza o contexto local para acessar o pipe. Retorna o contexto do componente remoto, a partir do qual é possível obter o ServiceManager chamando getServiceManager() no objeto retornado. Além disso, o SessionManager libera memória do processo LibreOfficeDev com nome aleatório e relata as tentativas de conexão no console.

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 conexão. Por padrão, há uma pausa de 1, 3, 5 e 7 segundos entre as tentativas.


      def my_script():
          # o código do usuário 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 remoto do Python
              my_script()
    
Ícone Dica

Use o método scriptforge.ScriptForge() para vincular scripts Python baseados em IDE a um serviço permanente LibreOfficeDev iniciado pela linha de comando.