LibreOfficeDev 24.8 laguntza
ScriptForge liburutegia Basic zein Python lehgoaietarako dago erabilgarri. Zerbitzu, metodo eta propietate gehienek berdin funtzionatzen dute bietan. Hala ere, lengoaia bakoitzak nola funtzionatzen duen desberdina izanda, ScriptForge erabiltzaileek liburutegiaren zenbait ezaugarri kontuan izan beharko dituzte Python erabiltzean:
Metodoen eta propietateen izenak: Python lengoaian, metdodo eta propietate guztiak minuskuletan, ProperCase formatuan edo camelCase formatuan erabili daitezke.
Argumentuak: Metodoei pasatutako gako-hitz argumentuak minuskuletan doaz.
Datak: Data-objektu guztiak jatorrizko datetime.datetime Python objektu modura pasatzen eta itzultzen dira.
Matrizeak: Dimentsio bakarreko matrizeak tupla modura (objektu aldaezinak dira) pasatzen eta itzultzen dira. Bi dimentsiotako matrizeak tuplen tupla modura pasatzen eta itzultzen dira.
None: Python lengoaiaren None gako-hitza Basic lengoaiaren Null, Empty edo Nothing gako-hitzen baliokidea da.
UNO objektuak: UNO egitura guztiak aldaketarik gabe trukatzen dira Basic eta Python artean.
Arazketa: ScriptForge darabilten Python scriptetan errore bat gertatzen denean, Python exekuzio-pilak eskaintzen duen errore-mezuak errorea abiarazi duen kode-lerroa bistaratzen du. Basic lengoaian, errore-mezuak ez du informazio hori eskaintzen.
Begiratu LibreOfficeDev Python scripten laguntza LibreOfficeDev baitan Python scriptak nola sortu eta erabili ikasteko.
Lortu nahi denaren arabera, Python scriptak LibreOfficeDev aplikazioan erabiltzeko modu desberdinak daude:
Scriptak uneko LibreOfficeDev prozesuaren barruan exekutatzea: Python scriptak LibreOfficeDev prozesuaren barruan exekutatzeko, erabili menua edo APSO hedapena Python scripten karpetan gordetako erabiltzaile-scriptei deitzeko. APSO Python kontsola ere erabili daiteke Python scriptak modu interaktiboan exekutatzeko.
Scriptak LibreOfficeDev prozesutik bereizita exekutatzea: Python scriptak abian dagoen LibreOfficeDev prozesu batekin konektatzen duen kanpoko prozesu batetik exekutatuko dira socket baten bidez.
Scriptak LibreOfficeDev prozesuaren barruan exekutatuko badira, gomendagarria da APSO (Alternative Script Organizer for Python) hedapena instalatzea. Python scriptak LibreOfficeDev kanpoan garatu nahi badira, hala ere, nahi den Python IDEa aukeratu daiteke.
LibreOfficeDev barruan Python erabiltzen hasteko biderik errazena APSO hedapen instalatzea da. Hura instalatu ondoren, ireki edozein LibreOfficeDev osagai eta joan
aukerara.APSOren leiho nagusian, joan
aukerara.APSO irekitzeko beste modu bat Alt + ⇧ + F11 lasterbidea erabiltzea da.
Orain, Python komandoak idazten hasi daiteke eta shell-ak komando bakoitzari dagokion irteera inprimatuko du kode-lerro bakoitza exekutatu ondoren.
ScriptForge liburutegia erabiltzen hasteko, lehenengo CreateScriptService metodoa inportatu behar da. Horren bidez, liburutegiak eskaintzen dituen zerbitzuak atzitu daitezke. Beheko adibideak Basic zerbitzua darabil mezu-koadro bat bistaratzeko.
from scriptforge import CreateScriptService
bas = CreateScriptService("Basic")
bas.MsgBox("Hello!")
Goiko adibidea exekutatzeko, sartu lerro bakoitza Python kontsolan, banan-banan, kode-lerro bakoitza idatzi ondoren ⏎ tekla sakatuta.
Orain, Python komandoak exekutatzen hasi zaitezke ScriptForge zerbitzuak erabilita. Adibidez, beheko kode-zatiak UI zerbitzua darabil Writer dokumentu hutsa sortzeko.
ui = CreateScriptService("UI")
doc = ui.CreateDocument("Writer")
Python fitxategi propioak sortu eta editatu ditzakezu testu-editore bat erabilita. Ondoren, edozein LibreOfficeDev osagaitik deitu ahal izango dituzu.
Lehen urratsa da jakitea non gordetzen diren erabiltzaile-scriptak. Horretarako, begiratu Python scripten antolaketa eta kokalekua laguntza-orria.
Orain, testu-fitxategi bat sortu dezakezu zure Python erabiltzaile-scripten karpetan, adibidez sf_test.py, eta scripta idazten hasi.
Behean, Calc gelaxka baten zenbakizko balioa eskuratzen duen eta 1 gehitzen dion adibideko script sotil bat dago. Idatzi kode hori sf_test.py fitxategian.
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, )
Adibide horrek increment_cell funtzioa sortzen du. Kontuan izan g_exportedScripts tupla bat dela eta LibreOfficeDev aplikazioan erabiltzaile-script modura bistaratuko diren funtzioak adierazten dituela.
Script hau Calc dokumentu baten barrutik exekutatzeko:
Sortu edo ireki Calc fitxategi bat.
Sartu zenbaki bat uneko orriko "A1" gelaxkan.
Joan
aukerara.Aukeratu 'Nire makroak - sf_test' liburutegi-hautatzailean. Ondoren, aukeratu increment_cell funtzioa.
zerrendan ageri denSakatu Exekutatu. Begiratu nola "A1" gelaxkako balioari 1 gehitu zaion.
APSO ere erabili daiteke Python scriptak antzera exekutatzeko:
Lehenengo, ireki APSO
erabilita.Makroen zerrendan, joan
aukerara.Sakatu
.Scriptak prozesu bereizi batetik exekutatzeko lehen urratsa LibreOfficeDev zein karpetatan dagoen instalatuta aurkitzea da. Hori egiteko modu bat baino gehiago dago, baina ScriptForge liburutegiak zure instalazioaren bide-izena identifikatzeko modu azkarra eskaintzen du. Ireki APSOren Python kontsola eta idatzi:
from scriptforge import CreateScriptService
fs = CreateScriptService("FileSystem")
fs.FileNaming = "SYS"
inst_dir = fs.InstallFolder
print(inst_dir)
Goiko kodearen irteera LibreOfficeDev instalatuta dagoen oinarri-direktorioa da. Orain, "program" azpikarpeta emaitza gisa lortutako bide-izen horri gehitu behar zaio. Hori da Python scriptak prozesu bereizi batetik exekutatzeko erabili behar den oinarri-karpeta.
Adibidez, demagun /usr/lib/libreoffice/ eskuratu dela goiko Python kodea exekutatu ondoren. Kasu horretan, /usr/lib/libreoffice/program erabili beharko da Python scriptak exekutatzeko bide-izen gisa.
Python scriptak prozesu bereizi batetik exekutatzeko, LibreOfficeDev zenbait aukera gehigarrirekin abiarazi behar da, kanpoko prozesuak LibreOfficeDev osagai-prozesuarekin komunikatzeko erabiliko dituen ostalari-izena eta ataka zehazteko.
Ireki sistema eragilearen komando-gonbita, joan LibreOfficeDev instalazio-direktorioaren programa-karpetara eta idatzi:
./soffice --accept='socket,host=localhost,port=2021;urp;'
Goiko komandoak LibreOfficeDev komunikazio-kanal bat irekita duela abiaraziko du, beste prozesu batzuk harekin mezuak trukatu ahal izan ditzaten.
Kontuan izan aurreko adibidean LibreOfficeDev hasiera-zentroa irekiko dela. Osagai jakin bat ireki nahi izanez gero, adibidez Writer, '--writer' bandera gehitu behar zaio komandoari, honela:
./soffice --writer --accept='socket,host=localhost,port=2021;urp;'
Gogoratu host eta port parametroak, adibide honetan localhost eta 2021 direnak, hurrenez hurren.
Abiarazi Python kontsola zure LibreOfficeDev instalazioaren bide-izenean dagoen program karpetatik. Jarraitu goiko urratsak zure instalazioaren bide-izena aurkitzeko.
Linux / Mac OS sistemetan:
$ cd /usr/lib/libreoffice/program
$ python
Windows sisteman:
$ cd C:\Program Files\LibreOffice\program\
$ python.exe
Horrek Python kontsola irekiko du, LibreOfficeDev aplikazioak exekutatuko dituen komandoak idazten hasi ahal izateko. Hala ere, hori baino lehen socket-konexioa konfiguratu behar da.
from scriptforge import ScriptForge, CreateScriptService
ScriptForge(hostname='localhost', port=2021)
Read the section Setting PYTHONPATH below in case of errors importing scriptforge.py or uno.py.
Goiko kodearen bigarren lerroak host eta port ezarpenak definitzen ditu, Python kontsola socket-ezarpen berekin ireki den LibreOfficeDev prozesuarekin komunikatu ahal dadin.
Orain beste Python komando batzuk exekutatu ahal dituzu, eta horiek LibreOfficeDev prozesuarekin komunikatu ahal izango dira. Adibidez:
ui = CreateScriptService("UI")
bas = CreateScriptService("Basic")
doc = ui.OpenDocument("~/Documents/myFile.ods")
bas.MsgBox(doc.DocumentType)
Depending on your operating system's configuration you will need to set the environment variable PYTHONPATH in order to import the scriptforge.py library, which in turn requires importing the uno.py library.
Use your operating system's file search tool to determine the directory where both these files are located.
For instance, on a default Ubuntu installation both files may be located at:
scriptforge.py: Located in /usr/lib/libreoffice/program
uno.py: Located in /usr/lib/python3/dist-packages
In this case, set the environment variable PYTHONPATH as follows before starting the Python interpreter:
export PYTHONPATH=/usr/lib/libreoffice/program:/usr/lib/python3/dist-packages
The location of these files will be different for each operating system and LibreOfficeDev installation method.