Paglikha ng Python Scripts gamit ang ScriptForge

Mga pagkakaiba sa pagitan ng Basic at Python

Ang ScriptForge library ay magagamit pareho para sa Basic at Python. Karamihan sa mga serbisyo, pamamaraan at pag-aari ay gumagana nang magkapareho sa parehong mga programming language. Gayunpaman, dahil sa mga pagkakaiba sa kung paano gumagana ang bawat wika, ScriptForge dapat malaman ng mga user ang ilang katangian ng library kapag gumagamit ng Python:

tip

Bisitahin Tulong sa LibreOffice Python Scripts para sa higit pang impormasyon sa Python scripting gamit ang LibreOffice.


Pagpapatakbo ng mga script ng Python sa LibreOffice

Depende sa kung ano ang nais mong makamit, maaari kang pumili ng isa sa mga sumusunod na diskarte sa pagpapatakbo ng mga script ng Python sa LibreOffice:

tip

Kung plano mong magpatakbo ng mga script mula sa loob ng proseso ng LibreOffice, inirerekomendang i-install ang APSO (Alternative Script Organizer para sa Python) extension . Gayunpaman, upang bumuo ng mga script ng Python mula sa labas ng LibreOffice, maaari mong piliin ang iyong gustong Python IDE.


Pagpapatakbo ng mga Script mula sa loob ng proseso ng LibreOffice

Gamit ang extension ng APSO

Ang pinakamadaling paraan upang makapagsimula sa Python scripting sa LibreOffice ay sa pamamagitan ng pag-install ng APSO extension. Pagkatapos i-install ito, buksan ang anumang bahagi ng LibreOffice at pumunta sa Tools - Macros - Ayusin ang Python Scripts .

Sa pangunahing window ng APSO pumunta sa Menu - Python Shell .

tip

Bilang kahalili maaari mong buksan ang APSO gamit ang default na shortcut Alt + Shift + F11 .


Ngayon ay maaari ka nang magsimulang mag-type ng mga utos ng Python at ipi-print ng shell ang kaukulang output pagkatapos maisakatuparan ang bawat linya ng code.

Upang simulan ang paggamit ng ScriptForge library, kailangan mong i-import ang CreateScriptService paraan, kung saan maa-access mo ang mga serbisyong ibinigay ng library. Ang halimbawa sa ibaba ay gumagamit ng Basic serbisyo upang magpakita ng kahon ng mensahe.


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

Upang patakbuhin ang halimbawa sa itaas, ipasok ang bawat linya sa Python shell, isa-isa, pagpindot sa Enter key pagkatapos mong i-type ang bawat linya ng code.

Ngayon ay maaari mong simulan ang pagpapatupad ng mga utos ng Python gamit ang alinman sa mga serbisyo ng ScriptForge. Halimbawa, ginagamit ng snippet ng code sa ibaba ang UI serbisyo upang lumikha ng isang blangkong dokumento ng Writer.


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

Paglikha ng mga file ng script ng Python

Maaari kang lumikha ng iyong sariling mga file ng Python at i-edit ang mga ito gamit ang iyong gustong text editor. Sa ibang pagkakataon maaari mo silang tawagan mula sa loob ng anumang bahagi ng LibreOffice.

Ang unang hakbang ay upang mahanap kung saan naka-imbak ang iyong mga script ng user. Para diyan, sumangguni sa Organisasyon at Lokasyon ng Python Scripts pahina ng tulong.

Ngayon ay maaari kang lumikha ng isang text file sa loob ng iyong Python user scripts folder, halimbawa sf_test.py , at simulang i-type ang iyong mga script.

Susunod ay isang simpleng halimbawa na kumukuha ng numeric na halaga mula sa isang Calc cell at dinadagdagan ito ng 1. I-type lamang ang sumusunod na code sa sf_test.py file.


    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, )
  

Ang halimbawang ito ay lumilikha ng increment_cell function. Tandaan na g_exportedScripts ay isang tuple na nagsasabi kung aling mga function ang ipapakita sa LibreOffice bilang mga script ng user.

Upang patakbuhin ang script na ito mula sa loob ng isang dokumento ng Calc:

  1. Gumawa o magbukas ng Calc file.

  2. Maglagay ng ilang numeric na halaga sa cell "A1" sa kasalukuyang sheet.

  3. Pumunta sa Mga Tool - Macros - Patakbuhin ang Macros .

  4. Piliin ang Aking Macros - sf_test sa tagapili ng library. Pagkatapos ay piliin ang increment_cell function sa ilalim ng Pangalan ng Macro listahan.

  5. I-click Takbo . Tandaan na ang halaga sa cell na "A1" ay nadagdagan ng 1.

Maaari mo ring gamitin ang APSO upang magpatakbo ng mga script ng Python sa katulad na paraan:

  1. Unang buksan ang APSO sa pamamagitan ng pagpunta sa Tools - Macros - Ayusin ang Python Scripts .

  2. Sa listahan ng macro, mag-navigate sa Aking Macros - sf_test - increment_cell .

  3. I-click Ipatupad .

Pagpapatakbo ng mga Script nang hiwalay sa proseso ng LibreOffice

Pagtukoy sa Landas ng Pag-install

Ang unang hakbang upang magpatakbo ng mga script mula sa isang hiwalay na proseso ay upang mahanap ang folder kung saan naka-install ang LibreOffice. Mayroong ilang mga paraan upang gawin iyon, ngunit ScriptForge nagbibigay ng mabilis na paraan upang matukoy ang iyong landas sa pag-install. Para doon, buksan ang APSO's Python shell at i-type ang:


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

Ang output mula sa code sa itaas ay ang base directory kung saan naka-install ang LibreOffice. Ngayon ay kailangan mong idagdag ang "program" subfolder sa nagresultang landas. Ito ang base folder kung saan magpapatakbo ka ng mga script ng Python mula sa isang hiwalay na proseso.

Halimbawa, ipagpalagay na nakuha mo /usr/lib/libreoffice/ bilang resulta mula sa pagpapatakbo ng Python code sa itaas. Pagkatapos ay kailangan mong isaalang-alang /usr/lib/libreoffice/program bilang landas upang patakbuhin ang iyong mga script ng Python.

Simulan ang LibreOffice gamit ang mga setting ng socket

Upang magpatakbo ng mga script ng Python mula sa isang hiwalay na proseso, kailangan mong simulan ang LibreOffice gamit ang ilang karagdagang mga opsyon na tumutukoy sa hostname at port kung saan makikipag-ugnayan ang panlabas na proseso sa proseso ng bahagi ng LibreOffice.

Buksan ang command prompt ng iyong operating system, mag-navigate sa folder ng program ng iyong direktoryo ng pag-install ng LibreOffice at i-type ang:

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

Ang utos sa itaas ay magsisimula sa LibreOffice na may bukas na channel ng komunikasyon upang ang ibang mga proseso ay makapagpalitan ng mga mensahe dito.

Tandaan na ang nakaraang halimbawa ay nagbubukas ng LibreOffice start center. Kung gusto mong magbukas ng isang partikular na bahagi, halimbawa Writer, maaari mong idagdag ang --writer flag sa command, tulad ng sumusunod.

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

Pansinin ang host at daungan mga parameter, na sa halimbawang ito ay localhost at 2021 , ayon sa pagkakabanggit.

Pagpapatakbo ng External Python Shell

Simulan ang shell ng Python mula sa loob ng programa folder sa loob ng iyong landas sa pag-install ng LibreOffice. Sundin ang mga hakbang sa itaas upang matutunan kung paano hanapin ang iyong landas sa pag-install.

Sa Linux / Mac OS:

$ cd /usr/lib/libreoffice/program

$ python

Sa Windows:

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

$ python.exe

Bubuksan nito ang shell ng Python at maaari ka na ngayong magsimulang mag-type ng mga command na isasagawa ng LibreOffice. Ngunit kailangan mo munang i-set up ang socket connection.


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

Basahin ang seksyon Pagtatakda ng PYTHONPATH sa ibaba kung sakaling magkaroon ng mga error sa pag-import scriptforge.py o uno.py .


Ang pangalawang linya ng code sa itaas ay tumutukoy sa host at daungan mga setting upang ang Python shell ay maaaring makipag-ugnayan sa isang patuloy na proseso ng LibreOffice na binuksan gamit ang parehong mga setting ng socket.

Ngayon ay maaari ka nang magpatakbo ng iba pang mga utos ng Python at magagawa nilang makipag-ugnayan sa proseso ng LibreOffice. Halimbawa:


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

Pagtatakda ng PYTHONPATH

Depende sa configuration ng iyong operating system, kakailanganin mong itakda ang environment variable PYTHONPATH para ma-import ang scriptforge.py library, na nangangailangan naman ng pag-import ng uno.py aklatan.

Gamitin ang tool sa paghahanap ng file ng iyong operating system upang matukoy ang direktoryo kung saan matatagpuan ang parehong mga file na ito.

Halimbawa, sa isang default na pag-install ng Ubuntu ang parehong mga file ay maaaring matatagpuan sa:

Sa kasong ito, itakda ang variable ng kapaligiran PYTHONPATH tulad ng sumusunod bago simulan ang Python interpreter:

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

note

Magiiba ang lokasyon ng mga file na ito para sa bawat operating system at paraan ng pag-install ng LibreOffice.


Mangyaring suportahan kami!