Pomoč LibreOffice 24.8
Knjižnica ScriptForge je na voljo za Basic in Python. Večina storitev, metod in lastnosti deluje enako v obeh programskih jezikih. Vendar se morajo uporabniki ScriptForge zaradi razlik v konceptu samih programskih jezikov zavedati nekaterih značilnosti knjižnice, ko uporabljajo Python:
Imena metod in lastnosti: v Pythonu se vse metode in lastnosti uporabljajo z malimi začetnicami oz. malimi začetnicami, z velikimi začetnicami vseh sestavnih besed ali z velikimi začetnicami preostalih sestavnih besed (npr. takolenekako, TakoleNekako, takoleNekako).
Argumenti: vsi metodam posredovani parametri ključnih besed so zapisani z malimi črkami.
Datumi: vsi datumski predmeti so podani in vrnjeni kot domorodni predmeti Pythona datetime.datetime.
Polja: enodimenzionalna polja so podana in vrnjena kot n-terice (kar je nespremenljiv predmet). Dvodimenzionalna polja so podana in vrnjena kot n-terice n-teric.
None: ključna beseda None v Pythonu je ekvivalentna ključnim besedam v Basicu Null, Empty in Nothing.
Predmeti UNO: vse strukture UNO se med Basicom in Pythonom izmenjujejo brez sprememb.
Razhroščevanje: ko se dogodi napaka v skriptih Python, ki uporabljajo knjižnico ScriptForge, se v sporočilu o napaki, ki ga poda izvajalni sklad Python, izpiše vrstica kode, ki je sprožila napako. V sporočilih o napaki Basica te informacije niso podane.
Obiščite Pomoč za skripte LibreOffice Python, da izveste več o pisanju skriptov Python z uporabo LibreOffice.
Glede na to, kaj želite doseči, lahko izberete enega od naslednjih načinov izvajanja skriptov Python v LibreOffice:
izvajanje skriptov v okviru trenutnega procesa LibreOffice: skripti Python se izvajajo znotraj procesa LibreOffice z uporabo menija ali razširitve APSO, tako da kličete uporabniške skripte, shranjene v mapi skriptov Python. Uporabite lahko tudi lupino Python razširitve APSO, da skripte Python izvajate interaktivno.
izvajanje skriptov ločeno od procesa LibreOffice: skripti Python se izvajajo v zunanjem procesu, ki se poveže s tekočim procesom LibreOffice z uporabo vtičnice.
Če nameravate izvajati skripte v okviru procesa LibreOffice, priporočamo namestitev razširitve APSO (Alternative Python Script Organizer). Za razvoj skriptov Python izven LibreOffice lahko izberete tudi svoje priljubljeno razvojno okolje IDE za Python.
Prve korake s skripti Python v LibreOffice najenostavneje opravite z namestitvijo razširitve APSO. Po njeni namestitvi odprite poljubno komponento paketa LibreOffice in izberite
.V osrednjem oknu APSO izberite
.Namesto tega lahko odprete razširitev APSO s privzeto kombinacijo tipk izmenjalka + dvigalka + F11.
Zdaj lahko pričnete s pisanjem ukazov Python in v lupini se izpiše ustrezen izhod po vsaki izvedeni vrstice kode.
Za delo s knjižnico ScriptForge morate uvoziti metodo CreateScriptService, s katero boste lahko dostopali do storitev, ki jih ponuja knjižnica. Spodnji primer uporablja storitev Basic, s katero prikaže okno s sporočilom.
from scriptforge import CreateScriptService
bas = CreateScriptService("Basic")
bas.MsgBox("Hello!")
Za izvajanje zgornjega primera vnesite vsako vrstico posebej v lupino Python, tako da po vsaki vrstici kode pritisnete vnašalko.
Zdaj lahko pričnete izvajati ukaze Python z uporabo poljubne storitve ScriptForge. Primer: spodnji odlomek kode uporablja storitev UI za izdelavo praznega dokumenta programa Writer.
ui = CreateScriptService("UI")
doc = ui.CreateDocument("Writer")
Ustvarite lahko lastne datoteke Python in jih urejate v svojem priljubljenem urejevalniku besedil. Kasneje jih lahko kličete iz poljubne komponente LibreOffice.
Najprej morate poiskati mesto, kjer so shranjeni vaši uporabniški skripti. Glede tega si oglejte stran pomoči Organizacija in mesto skriptov v Pythonu.
Zdaj lahko ustvarite besedilno datoteko v mapi svojih uporabniških skriptov Python, npr. sf_test.py, in pričnete s pisanjem svojih skriptov.
Sledi enostaven primer, ki pridobi številsko vrednost iz celice dokumenta Calc in jo poveča za 1. Preprosto vnesite sledečo kodo v datoteko sf_test.py.
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, )
Ta primer ustvari funkcijo increment_cell. Upoštevajte, da je g_exportedScripts n-terica, ki določa, katere funkcije bodo v LibreOffice prikazane kot uporabniški skripti.
Ta skript izvedete v dokumentu Calc na sledeč način:
Ustvarite ali odprite datoteko programa Calc.
Vnesite številsko vrednost v celico »A1« na trenutnem delovnem listu.
Izberite
.V izbirniku knjižnic izberite Moji Makri – sf_test. Nato izberite funkcijo increment_cell na seznamu .
Kliknite Zaženi. Upoštevajte, da je vrednost v celici »A1« povečana za 1.
Na podoben način lahko za izvajanje skriptov Python uporabite tudi razširitev APSO:
Naprej odprite APSO z
.Na seznamu makrov krmarite do
.Kliknite
.Prvi korak za izvajanje skriptov iz ločenega procesa je, da poiščete mapo, kjer je nameščen LibreOffice. Obstaja več načinov za to, vendar ScriptForge ponuja hiter način za identifikacijo vaše namestitvene poti. V ta namen odprite lupino Python razširitve APSO in vnesite:
from scriptforge import CreateScriptService
fs = CreateScriptService("FileSystem")
fs.FileNaming = "SYS"
inst_dir = fs.InstallFolder
print(inst_dir)
Rezultat zgornje kode je osnovna mapa, kjer je nameščen paket LibreOffice. Zdaj morate rezultatu dodati podmapo »program«. To je osnovna mapa, iz katere boste izvajali skripte Python v ločenem procesu.
Primer: recimo, da je rezultat zgornje kode Python /usr/lib/libreoffice/. Kot pot za izvajanje svojih skriptov Python morate tako uporabiti /usr/lib/libreoffice/program.
Če želite izvajati skripte Python iz ločenega procesa, morate zagnati LibreOffice z nekaj dodatnimi možnostmi, ki določajo ime gostitelja in vrata, skozi katera bo zunanji proces komuniciral s procesom komponente LibreOffice.
Odprite ukazno vrstico operacijskega sistema, krmarite do programske mape svoje namestitvene mape LibreOffice in vnesite:
./soffice --accept='socket,host=localhost,port=2021;urp;'
Zgornji ukaz zažene LibreOffice z odprtim kanalom za komunikacijo, tako da lahko ostali procesi z njim izmenjujejo sporočila.
Upoštevajte, da prejšnji primer odpre začetno središče LibreOffice. Če želite odpreti določeno komponento paketa, npr. program Writer, lahko ukazu dodate zastavico --writer, kot sledi.
./soffice --writer --accept='socket,host=localhost,port=2021;urp;'
Zapomnite si vrednost parametrov host in port, ki sta v tem primeru localhost in 2021.
Zaženite lupino Python iz mape program znotraj svoje namestitvene poti LibreOffice. Sledite zgornjim korakom, da izveste, kako poiskati svojo namestitveno pot.
Na sistemih GNU/Linux in macOS:
$ cd /usr/lib/libreoffice/program
$ python
Na sistemih Windows:
$ cd C:\Program Files\LibreOffice\program\
$ python.exe
S tem odprete lupino Python in zdaj lahko začnete vnašati ukaze, ki se bodo izvajali v LibreOffice. Najprej pa morate nastaviti povezavo prek vtičnice.
from scriptforge import ScriptForge, CreateScriptService
ScriptForge(hostname='localhost', port=2021)
Če naletite na napake pri uvozu scriptforge.py ali uno.py, preberite spodnje podpoglavje Določanje PYTHONPATH.
Druga vrstica zgornje kode določa nastavitvi host in port, tako da lahko lupina Python komunicira s tekočim procesom LibreOffice, ki je odprt z istimi nastavitvami vtičnice.
Zdaj lahko izvajate druge ukaze Python in ti bodo lahko komunicirali s procesom LibreOffice. Primer:
ui = CreateScriptService("UI")
bas = CreateScriptService("Basic")
doc = ui.OpenDocument("~/Documents/myFile.ods")
bas.MsgBox(doc.DocumentType)
Glede na nastavitve operacijskega sistema boste morali določiti okoljsko spremenljivko PYTHONPATH za uvoz knjižnice scriptforge.py, ki posledično zahteva uvoz knjižnice uno.py.
Uporabite orodje iskanja datotek vašega operacijskega sistema, da določite mapi, v katerih se nahajata ti datoteki.
Na privzeti namestitvi Ubuntu se datoteki tako najverjetneje nahajata v:
scriptforge.py: nahaja se v /usr/lib/libreoffice/program
uno.py: nahaja se v /usr/lib/python3/dist-packages
V tem primeru okoljsko spremenljivko PYTHONPATH pred zagonom tolmača Python nastavite tako:
export PYTHONPATH=/usr/lib/libreoffice/program:/usr/lib/python3/dist-packages
Mesto teh datotek se razlikuje glede na operacijski sistem in metodo namestitve LibreOffice.