ການລັນສະຄຣິບ Python ຂອງ LibreOfficeDev

ອີງຕາມສິ່ງທີ່ທ່ານຕ້ອງການບັນລຸ, ທ່ານສາມາດເລືອກໜຶ່ງໃນວິທີການລັນສະຄຣິບ Python ໃນ LibreOfficeDev ດັ່ງຕໍ່ໄປນີ້:

ໄອຄອນ ເຄັດລັບ

ຖ້າທ່ານວາງແຜນທີ່ຈະລັນສະຄຣິບຈາກພາຍໃນໂປຣເຊສ LibreOfficeDev, ຂໍແນະນຳໃຫ້ຕິດຕັ້ງ ສ່ວນຂະຫຍາຍ APSO (Alternative Script Organizer for Python). ແນວໃດກໍຕາມ, ເພື່ອພັດທະນາສະຄຣິບ Python ຈາກພາຍນອກ LibreOfficeDev, ທ່ານສາມາດເລືອກ IDE ຂອງ Python ທີ່ທ່ານຕ້ອງການໄດ້.


ການລັນສະຄຣິບຈາກພາຍໃນໂປຣເຊສ LibreOfficeDev

ການໃຊ້ສ່ວນຂະຫຍາຍ APSO

ວິທີທີ່ງ່າຍທີ່ສຸດໃນການເລີ່ມຕົ້ນຂຽນສະຄຣິບ Python ໃນ LibreOfficeDev ແມ່ນການຕິດຕັ້ງສ່ວນຂະຫຍາຍ APSO. ຫຼັງຈາກຕິດຕັ້ງແລ້ວ, ໃຫ້ເປີດສ່ວນປະກອບໃດໜຶ່ງຂອງ LibreOfficeDev ແລະໄປທີ່ ເຄື່ອງມື - ມາໂຄຣ - ຈັດການສະຄຣິບ Python.

ໃນໜ້າຕ່າງຫຼັກຂອງ APSO ໃຫ້ໄປທີ່ ເມນູ - Python Shell.

ໄອຄອນ ເຄັດລັບ

ຫຼືທ່ານສາມາດເປີດ APSO ໂດຍໃຊ້ປຸ່ມລັດເລີ່ມຕົ້ນ Alt + Shift + F11.


ຕອນນີ້ທ່ານສາມາດເລີ່ມພິມຄຳສັ່ງ Python ແລະ shell ຈະສະແດງຜົນໄດ້ຮັບທີ່ກ່ຽວຂ້ອງຫຼັງຈາກແຕ່ລະແຖວຂອງລະຫັດຖືກປະຕິບັດ.

ເພື່ອເລີ່ມຕົ້ນການນຳໃຊ້ໄລບຣາຣີ ScriptForge, ທ່ານຈຳເປັນຕ້ອງນຳເຂົ້າ (import) ວິທີການ CreateScriptService, ເຊິ່ງທ່ານຈະສາມາດເຂົ້າເຖິງການບໍລິການຕ່າງໆທີ່ສະໜອງໃຫ້ໂດຍໄລບຣາຣີ. ຕົວຢ່າງຂ້າງລຸ່ມນີ້ແມ່ນການໃຊ້ບໍລິການ Basic ເພື່ອສະແດງກ່ອງຂໍ້ຄວາມ.


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

ເພື່ອລັນຕົວຢ່າງຂ້າງເທິງ, ໃຫ້ປ້ອນແຕ່ລະແຖວໃນ Python shell, ເທື່ອລະແຖວ, ແລ້ວກົດປຸ່ມ Enter ຫຼັງຈາກທີ່ທ່ານພິມລະຫັດແຕ່ລະແຖວ.

ຕອນນີ້ທ່ານສາມາດເລີ່ມປະຕິບັດຄຳສັ່ງ Python ໂດຍໃຊ້ບໍລິການໃດໜຶ່ງຂອງ ScriptForge. ຕົວຢ່າງ, ຕົວຢ່າງລະຫັດຂ້າງລຸ່ມນີ້ໃຊ້ບໍລິການ UI ເພື່ອສ້າງເອກະສານ Writer ຫວ່າງເປົ່າ.


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

ການສ້າງໄຟລ໌ສະຄຣິບ Python

ທ່ານສາມາດສ້າງໄຟລ໌ Python ຂອງທ່ານເອງ ແລະ ແກ້ໄຂພວກມັນດ້ວຍໂປຣແກຣມແກ້ໄຂຂໍ້ຄວາມ (text editor) ທີ່ທ່ານຕ້ອງການ. ຈາກນັ້ນທ່ານສາມາດເອີ້ນໃຊ້ພວກມັນໄດ້ຈາກພາຍໃນສ່ວນປະກອບໃດໜຶ່ງຂອງ LibreOfficeDev.

ຂັ້ນຕອນທຳອິດແມ່ນການຊອກຫາບ່ອນເກັບສະຄຣິບຂອງຜູ້ໃຊ້. ສຳລັບເລື່ອງນັ້ນ, ໃຫ້ເບິ່ງທີ່ໜ້າຊ່ວຍເຫຼືອ ການຈັດລະບຽບ ແລະ ສະຖານທີ່ຂອງສະຄຣິບ Python.

ຕອນນີ້ທ່ານສາມາດສ້າງໄຟລ໌ຂໍ້ຄວາມພາຍໃນໂຟນເດີສະຄຣິບ Python ຂອງຜູ້ໃຊ້, ຕົວຢ່າງ my_script.py, ແລະ ເລີ່ມພິມສະຄຣິບຂອງທ່ານ.

ຕໍ່ໄປນີ້ແມ່ນຕົວຢ່າງງ່າຍໆໃນການດຶງຄ່າຕົວເລກຈາກຫ້ອງ (cell) ຂອງ Calc ແລະ ເພີ່ມຄ່າມັນຂຶ້ນ 1. ພຽງແຕ່ພິມລະຫັດຕໍ່ໄປນີ້ລົງໃນໄຟລ໌ my_script.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, )
  

ຕົວຢ່າງນີ້ສ້າງຟັງຊັນ increment_cell. ໝາຍເຫດວ່າ g_exportedScripts ແມ່ນ tuple ທີ່ຈະບອກວ່າຟັງຊັນໃດຈະຖືກສະແດງໃນ LibreOfficeDev ເປັນສະຄຣິບຂອງຜູ້ໃຊ້.

ເພື່ອກລັນສະຄຣິບນີ້ຈາກພາຍໃນເອກະສານ Calc:

  1. ສ້າງ ຫຼື ເປີດໄຟລ໌ Calc.

  2. ປ້ອນຄ່າຕົວເລກບາງຢ່າງລົງໃນຫ້ອງ "A1" ໃນຊີດປັດຈຸບັນ.

  3. ໄປທີ່ ເຄື່ອງມື - ມາໂຄຣ - ລັນມາໂຄຣ .

  4. ເລືອກ ມາໂຄຣຂອງຂ້ອຍ - my_script ໃນບ່ອນເລືອກໄລບຣາຣີ. ຈາກນັ້ນເລືອກຟັງຊັນ increment_cell ພາຍໃຕ້ລາຍຊື່ ຊື່ມາໂຄຣ.

  5. ຄລິກ ລັນ. ສັງເກດວ່າຄ່າໃນຫ້ອງ "A1" ໄດ້ຖືກເພີ່ມຂຶ້ນ 1.

ທ່ານຍັງສາມາດໃຊ້ APSO ເພື່ອລັນສະຄຣິບ Python ໃນລັກສະນະດຽວກັນ:

  1. ທຳອິດໃຫ້ເປີດ APSO ໂດຍໄປທີ່ ເຄື່ອງມື - ມາໂຄຣ - ຈັດການສະຄຣິບ Python.

  2. ໃນລາຍຊື່ມາໂຄຣ, ໄປທີ່ ມາໂຄຣຂອງຂ້ອຍ - my_script - increment_cell.

  3. ຄລິກ ປະຕິບັດການ (Execute).

ການລັນສະຄຣິບແຍກຈາກໂປຣເຊສ LibreOfficeDev

ການກຳນົດເສັ້ນທາງການຕິດຕັ້ງ (Installation Path)

ຂັ້ນຕອນທຳອິດໃນການລັນສະຄຣິບຈາກໂປຣເຊສທີ່ແຍກຕ່າງຫາກແມ່ນການຊອກຫາໂຟນເດີທີ່ LibreOfficeDev ຖືກຕິດຕັ້ງ. ມີຫຼາຍວິທີທີ່ຈະເຮັດແນວນັ້ນ, ແຕ່ ScriptForge ໃຫ້ວິທີທີ່ໄວໃນການລະບຸເສັ້ນທາງການຕິດຕັ້ງຂອງທ່ານ. ສຳລັບເລື່ອງນັ້ນ, ໃຫ້ເປີດ Python shell ຂອງ APSO ແລະ ພິມ:


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

ຜົນໄດ້ຮັບຈາກລະຫັດຂ້າງເທິງແມ່ນໄດເຣັກທໍຣີພື້ນຖານທີ່ LibreOfficeDev ຖືກຕິດຕັ້ງ. ຕອນນີ້ທ່ານຈຳເປັນຕ້ອງເພີ່ມໂຟນເດີຍ່ອຍ "program" ເຂົ້າໃນເສັ້ນທາງທີ່ໄດ້ຮັບ. ນີ້ແມ່ນໂຟນເດີພື້ນຖານທີ່ທ່ານຈະໃຊ້ລັນສະຄຣິບ Python ຈາກໂປຣເຊສທີ່ແຍກຕ່າງຫາກ.

ຕົວຢ່າງ, ສົມມຸດວ່າທ່ານໄດ້ຮັບ /usr/lib/libreoffice/ ເປັນຜົນໄດ້ຮັບຈາກການລັນລະຫັດ Python ຂ້າງເທິງ. ຈາກນັ້ນທ່ານຕ້ອງຖືວ່າ /usr/lib/libreoffice/program ເປັນເສັ້ນທາງໃນການລັນສະຄຣິບ Python ຂອງທ່ານ.

ເລີ່ມ LibreOfficeDev ດ້ວຍການຕັ້ງຄ່າ pipe ຫຼື socket

ເພື່ອລັນສະຄຣິບ Python ຈາກໂປຣເຊສທີ່ແຍກຕ່າງຫາກ, ທ່ານຈຳເປັນຕ້ອງເລີ່ມ LibreOfficeDev ດ້ວຍຕົວເລືອກເພີ່ມເຕີມບາງຢ່າງທີ່ລະບຸຊື່ pipe ຫຼື ຊື່ໂຮສ (hostname) ແລະ ພອດ (port) ທີ່ໂປຣເຊສພາຍນອກຈະໃຊ້ສື່ສານກັບໂປຣເຊສສ່ວນປະກອບຂອງ LibreOfficeDev.

ເປີດໜ້າຕ່າງຄຳສັ່ງ (command prompt) ຂອງລະບົບປະຕິບັດການຂອງທ່ານ, ໄປທີ່ໂຟນເດີ program ຂອງໄດເຣັກທໍຣີການຕິດຕັ້ງ LibreOfficeDev ຂອງທ່ານ ແລະ ພິມຢ່າງໃດຢ່າງໜຶ່ງຕໍ່ໄປນີ້:

ໃນ Linux / Mac OS:

libreoffice --accept='pipe,name=aPipeName;urp;'

ໃນ Windows:

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

ໃນຮູບແບບ flatpak:

flatpak run org.libreOffice.LibreOffice accept='socket,host=localhost,port=2021;urp;'

ຄຳສັ່ງໃດໜຶ່ງຂ້າງເທິງຈະເລີ່ມ LibreOfficeDev ພ້ອມກັບເປີດຊ່ອງທາງການສື່ສານເພື່ອໃຫ້ໂປຣເຊສອື່ນໆສາມາດແລກປ່ຽນຂໍ້ຄວາມກັບມັນໄດ້.

ໝາຍເຫດວ່າຕົວຢ່າງກ່ອນໜ້ານີ້ຈະເປີດໜ້າຫຼັກ (start center) ຂອງ LibreOfficeDev. ຖ້າທ່ານຕ້ອງການເປີດສ່ວນປະກອບສະເພາະ, ຕົວຢ່າງ Writer, ທ່ານສາມາດເພີ່ມແຟລັກ (flag) --writer ເຂົ້າໃນຄຳສັ່ງ ດັ່ງຕໍ່ໄປນີ້.

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

ໃຫ້ຈົດຈຳພາຣາມິເຕີ name, ຫຼື host ແລະ port, ເຊິ່ງໃນຕົວຢ່າງນີ້ແມ່ນ aPipeName, ຫຼື localhost ແລະ 2021 ຕາມລຳດັບ.

ການລັນ Python Shell ພາຍນອກ

ເລີ່ມ Python shell ຈາກພາຍໃນໂຟນເດີ program ຢູ່ໃນເສັ້ນທາງການຕິດຕັ້ງ LibreOfficeDev ຂອງທ່ານ. ປະຕິບັດຕາມຂັ້ນຕອນ ຂ້າງເທິງ ເພື່ອຮຽນຮູ່ວິທີຊອກຫາເສັ້ນທາງການຕິດຕັ້ງຂອງທ່ານ.

ໃນ Linux / Mac OS:

$ cd /usr/lib/libreoffice/program

$ python

ໃນ Windows:

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

$ python.exe

ສິ່ງນີ້ຈະເປີດ Python shell ແລະ ຕອນນີ້ທ່ານສາມາດເລີ່ມພິມຄຳສັ່ງທີ່ຈະຖືກປະຕິບັດໂດຍ LibreOfficeDev. ແຕ່ກ່ອນອື່ນ ທ່ານຈຳເປັນຕ້ອງຕັ້ງຄ່າການເຊື່ອມຕໍ່ pipe ຫຼື socket. ຄຳສັ່ງ ScriptForge() ຂ້າງລຸ່ມນີ້ຕ້ອງມາກ່ອນການເອີ້ນໃຊ້ CreateScriptService() ຄັ້ງທຳອິດ.

ລັນຢ່າງໃດຢ່າງໜຶ່ງ:


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

    from scriptforge import ScriptForge, CreateScriptService
    ScriptForge(hostname='localhost', port=2021)
  
ໄອຄອນ ບັນທຶກ

ອ່ານພາກສ່ວນ ການຕັ້ງຄ່າ PYTHONPATH ຂ້າງລຸ່ມນີ້ ໃນກໍລະນີທີ່ເກີດຂໍ້ຜິດພາດໃນການນຳເຂົ້າ scriptforge.py ຫຼື uno.py.


ແຖວທີສອງຂອງລະຫັດຂ້າງເທິງຈະກຳນົດການຕັ້ງຄ່າ pipe ຫຼື host ແລະ port ເພື່ອໃຫ້ Python shell ສາມາດສື່ສານກັບໂປຣເຊສ LibreOfficeDev ທີ່ກຳລັງເຮັດວຽກຢູ່ ເຊິ່ງຖືກເປີດດ້ວຍການຕັ້ງຄ່າ pipe ຫຼື socket ດຽວກັນ.

ຕອນນີ້ທ່ານສາມາດລັນຄຳສັ່ງ Python ອື່ນໆ ແລະ ພວກມັນຈະສາມາດສື່ສານກັບໂປຣເຊສ LibreOfficeDev ໄດ້. ຕົວຢ່າງ:


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

ການຕັ້ງຄ່າ PYTHONPATH

ອີງຕາມການຕັ້ງຄ່າຂອງລະບົບປະຕິບັດການຂອງທ່ານ, ທ່ານອາດຈະຈຳເປັນຕ້ອງຕັ້ງຄ່າຕົວປ່ຽນສະພາບແວດລ້ອມ (environment variable) PYTHONPATH ເພື່ອນຳເຂົ້າໄລບຣາຣີ scriptforge.py, ເຊິ່ງຈຳເປັນຕ້ອງມີການນຳເຂົ້າໄລບຣາຣີ uno.py ນຳອີກ.

ໃຊ້ເຄື່ອງມືຄົ້ນຫາໄຟລ໌ຂອງລະບົບປະຕິບັດການຂອງທ່ານເພື່ອລະບຸໄດເຣັກທໍຣີທີ່ໄຟລ໌ທັງສອງນີ້ຕັ້ງຢູ່.

ຕົວຢ່າງ, ໃນການຕິດຕັ້ງ Ubuntu ແບບເລີ່ມຕົ້ນ, ໄຟລ໌ທັງສອງອາດຈະຕັ້ງຢູ່ທີ່:

ໃນກໍລະນີນີ້, ໃຫ້ຕັ້ງຄ່າຕົວປ່ຽນສະພາບແວດລ້ອມ PYTHONPATH ດັ່ງຕໍ່ໄປນີ້ ກ່ອນທີ່ຈະເລີ່ມຕົວແປພາສາ (interpreter) ຂອງ Python:

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

ໄອຄອນ ບັນທຶກ

ສະຖານທີ່ຂອງໄຟລ໌ເຫຼົ່ານີ້ຈະແຕກຕ່າງກັນໄປຕາມແຕ່ລະລະບົບປະຕິບັດການ ແລະ ວິທີການຕິດຕັ້ງ LibreOfficeDev.


ກະລຸນາສະໜັບສະໜູນພວກເຮົາ!

ກະລຸນາສະໜັບສະໜູນພວກເຮົາ!