Creating Python Scripts with ScriptForge

Forskjeller mellom Basic og Python

The ScriptForge library is available both for Basic and Python. Most services, methods and properties work identically in both programming languages. However, due to differences in how each language works, ScriptForge users must be aware of some characteristics of the library when using Python:

tip

Visit Collabora Office Python Scripts Help for more information on Python scripting using Collabora Office.


Kjører Python-skript i Collabora Office

Avhengig av hva du har tenkt å oppnå, kan du velge en av følgende fremgangsmåter for å kjøre Python-skript i Collabora Office:

tip

If you plan to run scripts from inside the Collabora Office process, it is recommended to install the APSO (Alternative Script Organizer for Python) extension. However, to develop Python scripts from outside Collabora Office, you can choose your preferred Python IDE.


Kjøre skript fra Collabora Office-prosessen

Bruker APSO-utvidelsen

Den enkleste måten å komme i gang med Python-skripting i Collabora Office er ved å installere APSO-utvidelsen. Etter at du har installert den, åpne en hvilken som helst Collabora Office-komponent og gå til Verktøy - Makroer - Organiser Python-skript.

Gå til Meny - Python Shell i APSOs hovedvindu.

tip

Alternativt kan du åpne APSO ved å bruke standardsnarveien Alt + Shift + F11.


Nå kan du begynne å skrive Python-kommandoer og skallet vil skrive ut tilsvarende utdata etter at hver linje med kode er utført.

For å begynne å bruke ScriptForge-biblioteket, må du importere CreateScriptService-metoden, som du vil få tilgang til tjenestene som tilbys av biblioteket. Eksemplet nedenfor bruker Basic-tjenesten for å vise en meldingsboks.


    from scriptforge import CreateScriptService
    bas = CreateScriptService("Basic")
    bas.MsgBox("Hello!")
  

For å kjøre eksemplet ovenfor, skriv inn hver linje i Python-skallet, en etter en, og trykk Enter-tasten etter at du har skrevet inn hver linje med kode.

Nå kan du begynne å utføre Python-kommandoer ved å bruke hvilken som helst av ScriptForge-tjenestene. For eksempel bruker kodebiten nedenfor UI-tjenesten til å lage et tomt Writer-dokument.


    ui = CreateScriptService("UI")
    doc = ui.CreateDocument("Writer")
  

Opprette Python-skriptfiler

Du kan lage dine egne Python-filer og redigere dem med ditt foretrukne tekstredigeringsprogram. Senere kan du ringe dem fra en hvilken som helst Collabora Office-komponent.

The first step is to locate where your user scripts are stored. For that, refer to Python Scripts Organization and Location help page.

Nå kan du lage en tekstfil i Python-brukerskriptmappen, for eksempel sf_test.py, og begynne å skrive skriptene dine.

Neste er et enkelt eksempel som henter den numeriske verdien fra en Calc-celle og øker den med 1. Bare skriv inn følgende kode i sf_test.py-filen.


    from scriptforge import CreateScriptService
    doc = CreateScriptService("Calc")
    
    def increment_cell(args=None):
        value = doc.GetValue("A1")
        value += 1
        doc.SetValue("A1", value)
    
    g_exportedScripts = (increment_cell, )
  

Dette eksemplet oppretter funksjonen increment_cell. Merk at g_exportedScripts er en tuppel som forteller hvilke funksjoner som vil vises i Collabora Office som brukerskript.

Slik kjører du dette skriptet fra et Calc-dokument:

  1. Opprett eller åpne en Calc-fil.

  2. Skriv inn en numerisk verdi i celle "A1" i gjeldende ark.

  3. Gå til Verktøy - Makroer - Kjør makroer .

  4. Velg Mine makroer - sf_test i bibliotekvelgeren. Velg deretter funksjonen increment_cell under Makronavn-listen.

  5. Klikk Kjør. Merk at verdien i celle "A1" ble økt med 1.

Du kan også bruke APSO til å kjøre Python-skript på lignende måte:

  1. Åpne først APSO ved å gå til Verktøy - Makroer - Organiser Python-skript.

  2. I makrolisten, naviger til Mine makroer - sf_test - increment_cell.

  3. Klikk Utfør.

Kjøre skript separat fra Collabora Office-prosessen

Bestemmer installasjonsstien

Det første trinnet for å kjøre skript fra en separat prosess er å finne mappen der Collabora Office er installert. Det er flere måter å gjøre det på, men ScriptForge gir en rask måte å identifisere installasjonsstien på. For det, åpne APSOs Python-skall og skriv:


    from scriptforge import CreateScriptService
    fs = CreateScriptService("FileSystem")
    fs.FileNaming = "SYS"
    inst_dir = fs.InstallFolder
    print(inst_dir)
  

Utdata fra koden ovenfor er basiskatalogen der Collabora Office er installert. Nå må du legge til undermappen "program" til den resulterende banen. Dette er basismappen du vil kjøre Python-skript fra fra en egen prosess.

Anta for eksempel at du får /usr/lib/libreoffice/ som et resultat av å kjøre Python-koden ovenfor. Deretter må du vurdere /usr/lib/libreoffice/program som stien for å kjøre Python-skriptene dine.

Start Collabora Office med sokkel-innstillinger

For å kjøre Python-skript fra en separat prosess, må du starte Collabora Office med noen få tilleggsalternativer som spesifiserer vertsnavnet og porten som den eksterne prosessen vil kommunisere med Collabora Office-komponentprosessen gjennom.

Åpne operativsystemets ledetekst, naviger til programmappen i installasjonskatalogen for Collabora Office og skriv:

./soffice --accept='socket,host=localhost,port=2021;urp;'

Kommandoen ovenfor vil starte Collabora Office med en kommunikasjonskanal åpen slik at andre prosesser kan utveksle meldinger med den.

Merk at det forrige eksemplet åpner Collabora Office startsenter. Hvis du vil åpne en spesifikk komponent, for eksempel Writer, kan du legge til --writer-flagget til kommandoen, som følger.

./soffice --writer --accept='socket,host=localhost,port=2021;urp;'

Legg merke til parameterne host og port, som i dette eksemplet er henholdsvis localhost og 2021.

Kjører et eksternt Python-skall

Start the Python shell from within the program folder inside your Collabora Office installation path. Follow the steps above to learn how to find your installation path.

På Linux / Mac OS:

$ cd /usr/lib/libreoffice/program

$ python

På Windows:

$ cd C:\Program Files\LibreOffice\program\

$ python.exe

Dette vil åpne Python-skallet og nå kan du begynne å skrive kommandoer som vil bli utført av Collabora Office. Men først må du sette opp stikkontakten.


    from scriptforge import ScriptForge, CreateScriptService
    ScriptForge(hostname='localhost', port=2021)
  

Den andre linjen med kode ovenfor definerer host og port innstillingene slik at Python-skallet kan kommunisere med en pågående Collabora Office-prosess åpnet med de samme socketinnstillingene.

Nå kan du kjøre andre Python-kommandoer og de vil kunne kommunisere med Collabora Office-prosessen. For eksempel:


    ui = CreateScriptService("UI")
    bas = CreateScriptService("Basic")
    doc = ui.OpenDocument("~/Documents/myFile.ods")
    bas.MsgBox(doc.DocumentType)
  

Supporter oss!