LibreOffice SymbolLibreOffice Symbol

Støt os venligst!

officehelper-modul

For at tilgå denne kommando...

Open Tools - Macros - LibreOfficeDev Basic - Edit and select Application Macros container.


officehelper-modulet begynder en LibreOfficeDev-proces med at åbne en navngivet kanal (pipe) med et tilfældigt navn. officehelper forbinder IDE-baserede Python-skripter med en kørende LibreOfficeDev-instans til fejlsøgningsformål.

Metoder

Liste over metoder i officehelper-modulet

bootstrap

SessionManager


bootstrap

Åbner en navngivet kanal (pipe) med et tilfældigt navn og tilgår kanalen ud fra den lokale kontekst. Returnerer den eksterne komponent-kontekst, hvorfra du kan hente ServiceManager ved at kalde getServiceManager() på det returnerede objekt.

Tipikon

SessionManager er et bedre alternativ til bootstrap-metoden.


Syntaks:

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

Parametre:

office: En specifik binær kopi af LibreOfficeDev, f.eks. en portabel version eller en udviklingsversion.

delays (forsinkelser): Angiver flere forbindelsesforsøg. Standard er at gå i dvale 1, 3, 5 og 7 sekunder mellem nye forsøg.

report (rapport): Valgfrit metodenavn, som bruges til at rapportere eller logge forbindelsesfejl.

Eksempel:


      # Start LO som en service, hent dens eksterne komponent-kontekst
      import officehelper
      ctx = officehelper.bootstrap()
      # indsæt din kode her
      
      # request context multiples times and report processing in console
      import officehelper as oh
      ctx = oh.bootstrap(delays=(5,10,15,20),report=print)
      # indsæt din kode her
      
      # Brug en specifik binærversion
      from officehelper import bootstrap
      ctx = bootstrap(soffice=r"USB:\\PortableApps\\libO-7.6\\App\libreoffice\\program\\soffice.exe")
      # indsæt din kode her
    

Sådanne tilfældige navngivne kanaler skal frigøres fra hukommelsen som vist:


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

SessionManager class

Åbner en navngivet kanal (pipe) med et tilfældigt navn og tilgår kanalen ud fra den lokale kontekst. Returnerer den eksterne komponent-kontekst, hvorfra du kan hente ServiceManager ved at kalde getServiceManager() på det returnerede objekt. Derudover frigør SessionManager hukommelse fra den tilfældigt navngivne LibreOfficeDev-proces og rapporterer forbindelsesforsøg til konsollen.

Syntaks:

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

Parametre:

Eksempel:

office: En specifik binær kopi af LibreOfficeDev, f.eks. en portabel version eller en udviklingsversion.

delays (forsinkelser): Angiver flere forbindelsesforsøg. Standard er at gå i dvale 1, 3, 5 og 7 sekunder mellem nye forsøg.


      def my_script():
          # user code goes here
      
      g_exportedScripts = (my_script,)  # LibreOffice entry points
      
      if __name__ == "__main__":  # entry point for IDEs
          from officehelper import SessionManager
          with SessionManager() as ctx:  # remote Python context
              my_script()
    
Tipikon

Use scriptforge.ScriptForge() method to bind IDE-based Python scripts to a LibreOfficeDev permanent service started with the command line.