Skripty Python ze ScriptForge wutworić

Rozdźěle mjez Basic a Python

Biblioteka ScriptForge je w Basic kaž tež w Python k dispoziciji. Najwjace słužbow, metodow a kajkosćow we woběmaj programowanskimaj rěčomaj identisce funguje. Ale rozdźělow we funkciskim wašnju dla dyrbja wužiwarjo ScriptForge někotre wosebitosće biblioteki znać, hdyž Python wužiwaja:

Symbol Pokiw

Wopytajće LibreOffice Pomoc wo skriptach Python za dalše informacije wo wutworjenju skriptow Python z pomocu LibreOffice.


Skripty Python w IDE wobdźěłać

Zapodawanske pokiwy Python – nastupajo zjawne metody a kajkosće słužbow ScriptForge – móžeće wot IDE dóstać, kotrež tajku funkciju podpěruja. Wizuelnje, mjeztym wužiwarski skript wobdźěłujeće:

Symbol za Notica

Zapodawanske pokiwy so pokazuja, hdyž so metody a kajkosće z wulkimi a małymi pismikami wobdźěłuja.


Skripty Python w %PRODUCTNANE wuwjesć

Wotwisujo wot toho, što chceće docpěć, móžeće jedne ze slědowacych postupowanjow wubrać, zo byšće skripty Python w LibreOffice wuwjedł.

Symbol Pokiw

Jeli chceće skripty znutřka procesa LibreOffice wuwjesć, poruča so, rozšěrjenje APSO (Alternative Script Organizer for Python) instalować. Ale, zo byšće skripty Python zwonka LibreOffice wuwiwał, móžeće swoju preferowanu IDE wubrać.


Skripty znutřka procesa LibreOffice wuwjesć

Rozšěrjenje APSO wužiwać

Najlóša móžnosć, zo byšće z wutworjenjom skriptow w LibreOffice započał, je instalowanje rozšěrjenja APSO. Wočińće po instalaciji komponentu LibreOffice a dźiće k Nastroje – Makra – Organize python scripts (rozšěrjenje APSO do serbskeju rěčow přełožene njeje, tohodla so jendźelski znamješkowy rjećazk pokazuje)

Dźiće we hłownym woknje APSO k Menu – Python shell

Symbol Pokiw

Abo wočinjeće APSO z pomocu standardneje tastoweje skrótšenki Alt + ⇧ + F11.


Nětko móžeće započeć přikazy Python zapodawać a shell wotpowědne wudaće wudawa, po tym zo je so kóžda kodowa linka wuwjedła.

Zo byšće biblioteku ScriptForge wužiwał, dyrbiće metodu CreateScriptService importować, z kotrejž móžeće přistup k słužbam dóstać, kotrež biblioteka k dispoziciji staja. Slědowacy přikład słužbu Basic wužiwa, zo by zdźělenske polo pokazał.


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

Zo byšće přikład horjeka wuwjedł, zapodajće kóždu linku jednu po druhej do shella Python, a tłóčće tastu Enter, po tym zo sće kóždu kodowu linku zapodał.

Nětko móžeće započeć přikazy Python z pomocu słužbow ScriptForge wuwjesć. Slědowaca kodowa šlipka na přikład słužbu UI wužiwa, zo by prózdny dokument Writer wutworiła.


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

Skriptowe dataje Python wutworić

Móžeće swójske dataje Python wutworić a je ze swojim preferowanym tekstowym editorom wobdźěłać. Pozdźišo móžeće je w komponenće LibreOffice wuwołać.

Prěni krok je wuslědźić, hdźež su so waše wužiwarske skripty składowali. Hlejće za to stronu pomocy Organizacija a městno skriptow Python.

Nětko móžeće tekstowu dataju w swojim rjadowaku wužiwarskich skriptow Python wutworić, na přikład sf_test.py a započńće swoje skripty zapodawać.

Potom jednory přikład slěduje, kotryž numerisku hódnotu z cele Calc dóstawa a ju wo 1 powyšuje. Zapodajće prosće slědowacy kod do dataje 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, )
  

Tutón přikład funkciju increment_cell wutworja. Dźiwajće na to, zo g_exportedScript je tupek, kotryž zdźěla, kotre funkcije so w LibreOffice jako wužiwarske skripty pokazuja.

Zo byšće tutón skript z dokumenta Calc wuwjedł:

  1. Wutworće abo wočińće dataju Calc.

  2. Zapodajće někajku numerisku hódnotu do cele "A1" w aktualnej tabeli.

  3. Dźiće k Nastroje – Makra – Makra wuwjesć….

  4. Wubjerće Moje makra – sf_test we wuběrje Biblioteka. Wubjerće potom funkciju increment_cell z lisćiny Mjeno makra.

  5. Klikńće na Wuwjesć. Dźiwajće na to, zo je so hódnota w celi "A1" wo 1 powyšiła.

Móžeće tež APSO wužiwać, zo byšće skripty Python na podobne wašnje wuwjedł:

  1. Dźiće najprjedy k Nastroje – Makra – Organize Python Scripts, zo byšće APSO wočinił.

  2. Nawigěrujće w lisćinje makrow k My Macros – sf_test – increment_cell.

  3. Klikńće na Execute.

Skripty separatnje wot procesa LibreOffice wuwjesć

Instalacisku šćežku zwěsćić

Prěni krok, zo bychu so skripty ze separatneho proces wuwjedli, je, rjadowak namakać, hdźež LibreOffice je instalowany. Su wjacore móžnosće, zo byšće to činił, ale ScriptForge spěšnu móžnosć k dispoziciji staja, zo by instalacisku šćežku identifikował. Wočińće za to shell Python APSO a zapodajće:


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

Wudaće koda horjeka je bazowy zapis, hdźež LibreOffice je instalowany. Nětko dyrbiće rezultowacej šćežce podrjadowak "program" přidać. To je bazowy rjadowak, z kotrehož skripty Python ze separatneho procesa wuwjedźeće.

Připušćmy na přikład, zo /usr/lib/libreoffice/ jako wuslědk wuwjedźenja hornjeho koda dóstawaće. Potom dyrbiće /usr/lib/libreoffice/program jako šćežku wužiwać, zo byšće swoje skripty Python wuwjedł.

LibreOffice z nastajenjemi pipe abo socket startować

Zo byšće skripty Python ze separatneho procesa wuwjedł, dyrbiće LibreOffice z někotrymi přidatnymi móžnosćemi startować, kotrež hostmjeno a port podawaja, přez kotrejž eksterny proces z komponentowym procesom LibreOffice komunikuje.

Wočińće přikazowu linku swojeho dźěłoweho systema, nawigěrujće k programowemu rjadowakej swojeho instalaciskeho zapisa a zapodajće:

./soffice --accept='pipe,name=libreoffice;urp;'

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

Jedyn z přikazow horjeka budźe LibreOffice z wočinjenym komunikaciskim kanalom startować, zo bychu druhe procesy powěsće z nim wuměnić móhli.

Dźiwajće na to, zo předchadn přikład startowy centrum LibreOffice wočinja. Jeli chceće wěstu komponentu wočinić, na přikład Writer, móžeće přikazej značku --writer přidać:

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

Dźiwajće na parametry name abo host a port, kotrež su w tutym přikładźe libreoffice resp. localhost a 2021

Eksterny shell Python wuwjesć

Startujće shell Python z rjadowaka program w swojej instalaciskej šćežce LibreOffice. Přewjedźće kroki horjeka, zo byšće zhonił, kak swoju instalacisku šćežku namakaće.

Na Linux / Mac OS:

$ cd /usr/lib/libreoffice/program

$ python

Na Windows:

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

$ python.exe

To shell Python wočini a nětko móžeće započeć přikazy zapodawać, kotrež so přez LibreOffice wuwjedu. Ale najprjedy dyrbiće zwisk pipe abo socket konfigurować. Instrukcija ScriptForge() deleka dyrbi so před prěnim wuwołanjom CreateScriptService() wuwjesć.

Wuwjedźće jedyn ze slědowaceju kodow:


   from scriptforge import ScriptForge, CreateScriptService
   ScriptForge(pipe='libreoffice')

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

Čitajće wotrězk PYTHONPATH nastajić deleka, jeli su zmylki při importowanju scriptforge.py abo uno.py.


Druha kodowa linka horjeka nastajenja pipe abo host a port definuje, zo by shell Python móhł z běžnym procesom LibreOffice komunikować, kotryž je so ze samsnymi nastajenjemi pipe abo socket wočinił.

Nětko móžeće druhe přikazy Python wuwjesć a móža z procesom LibreOffice komunikować. Na přikład:


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

PYTHONPATH nastajić

Wotwisujo wot konfiguracije wašeho dźěłoweho systema dyrbiće wokolinowu wariablu PYTHONPATH stajić, zo byšće biblioteku scriptforge.py importował, kotraž sej ze swojeje strony import biblioteki uno.py wužaduje.

Wužiwajće datajowy pytanski nastroj swojeho dźěłoweho systema, zo byšće zapis zwěsćił, hdźež tutej wobě dataji stej.

Při instalaciji Ubuntu na přikład móžetej wobě dataji tule być:

Stajće w tutym padźe wokolinowu wariablu PYTHONPATH kaž slěduje, prjedy hač interpreter Python startujeće:

export PYTHONPATH=/usr/lib/libreoffice/program:/usr/lib/python3/dist-packages

Symbol za Notica

Městno tuteju datajow je za kóždy dźěłowy system a instalacisku metodu LibreOffice rozdźělne.


Prošu podpěrajće nas!

Prošu podpěrajće nas!