LibreOffice SymbolLibreOffice Symbol

Prosimy o wsparcie!

Moduł officehelper

Aby wykonać tę operację...

Otwórz Narzędzia - Makra - LibreOfficeDev Basic - Edycja i wybierz kontener Makra aplikacji.


Moduł officehelper uruchamia proces LibreOfficeDev, otwierając nazwany potok o losowej nazwie. officehelper wiąże skrypty Pythona oparte na środowisku IDE z działającą instancją LibreOfficeDev w celu debugowania.

Metody

Lista metod w module officehelper

bootstrap

SessionManager


bootstrap

Otwiera nazwany potok o losowej nazwie i używa kontekstu lokalnego do uzyskania dostępu do potoku. Zwraca zdalny kontekst komponentu, z którego można pobrać ServiceManager, wywołując getServiceManager() na zwróconym obiekcie.

Ikona wskazówki

SessionManager jest preferowaną alternatywą dla metody bootstrap.


Składnia:

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

Parametry:

soffice: konkretna kopia binarna LibreOfficeDev, na przykład wersja przenośna lub rozwojowa.

delays: określa wielokrotne próby połączenia. Domyślnie przerwy między kolejnymi próbami wynoszą 1, 3, 5 i 7 sekund.

report: opcjonalna nazwa metody używana do raportowania lub rejestrowania błędów połączenia.

Przykład:


      # Uruchom LO jako usługę, pobierz kontekst jego zdalnego komponentu
      import officehelper
      ctx = officehelper.bootstrap()
      # miejsce na Twój kod
      
      # request context multiples times and report processing in console
      import officehelper as oh
      ctx = oh.bootstrap(delays=(5,10,15,20),report=print)
      # miejsce na Twój kod
      
      # Użyj konkretnej wersji binarnej
      from officehelper import bootstrap
      ctx = bootstrap(soffice=r"USB:\\PortableApps\\libO-7.6\\App\libreoffice\\program\\soffice.exe")
      # miejsce na Twój kod
    

Takie losowo przypisane potoki nazwane należy zwolnić z pamięci w następujący sposób:


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

SessionManager class

Otwiera nazwany potok o losowej nazwie i używa kontekstu lokalnego do uzyskania dostępu do potoku. Zwraca zdalny kontekst komponentu, z którego można pobrać obiekt ServiceManager, wywołując metodę getServiceManager() na zwróconym obiekcie. Dodatkowo SessionManager zwalnia pamięć z losowo nazwanego procesu LibreOfficeDev i raportuje próby połączenia na konsoli.

Składnia:

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

Parametry:

Przykład:

soffice: konkretna kopia binarna LibreOfficeDev, na przykład wersja przenośna lub rozwojowa.

delays: określa wielokrotne próby połączenia. Domyślnie przerwy między kolejnymi próbami wynoszą 1, 3, 5 i 7 sekund.


      def my_script():
          # miejsce na kod użytkownika
      
      g_exportedScripts = (my_script,)  # punkty wejścia LibreOffice
      
      if __name__ == "__main__":  # punkt wejścia środowisk IDE
          from officehelper import SessionManager
          with SessionManager() as ctx:  # zdalny kontekst Pythona
              my_script()
    
Ikona wskazówki

Użyj metody scriptforge.ScriptForge(), aby powiązać skrypty Pythona oparte na środowisku IDE z trwałą usługą LibreOfficeDev uruchamianą za pomocą wiersza poleceń.