LibreOffice 24.8 Βοήθεια
Η βιβλιοθήκη ScriptForge είναι διαθέσιμη τόσο για Basic όσο και για Python. Οι περισσότερες υπηρεσίες, μέθοδοι και ιδιότητες λειτουργούν με τον ίδιο τρόπο και στις δύο γλώσσες προγραμματισμού. Ωστόσο, λόγω διαφορών στον τρόπο λειτουργίας κάθε γλώσσας, οι χρήστες του ScriptForge πρέπει να γνωρίζουν ορισμένα χαρακτηριστικά της βιβλιοθήκης όταν χρησιμοποιούν τη Python:
Μέθοδοι και ονόματα ιδιοτήτων: Στην Python, όλες οι μέθοδοι και οι ιδιότητες μπορούν να χρησιμοποιηθούν σε μορφές πεζών, με πρώτο γράμμα κάθε λέξης κεφαλαίο (ProperCased) ή καμηλογράμματα (camelCased).
Arguments: (Ορίσματα:) Όλα τα ορίσματα των λέξεων-κλειδιών που μεταβιβάζονται στις μεθόδους είναι πεζά.
Dates: (Ημερομηνίες:) Όλα τα αντικείμενα ημερομηνίας μεταβιβάζονται και επιστρέφονται ως datetime.datetime εγγενή αντικείμενα Python.
Arrays: (Πίνακες:) Οι μονοδιάστατοι πίνακες μεταβιβάζονται και επιστρέφονται ως πλειάδες (που είναι ένα αμετάβλητο αντικείμενο). Οι δισδιάστατοι πίνακες διαβιβάζονται και επιστρέφονται ως πλειάδες πλειάδων.
None: Η λέξη-κλειδί None της Python είναι ισοδύναμη με τις λέξεις Null, Empty (Κενό) ή Nothing (Τίποτα) της Basic.
UNO objects: (Αντικείμενα UNO:) Όλες οι δομές UNO ανταλλάσσονται μεταξύ Basic και Python χωρίς καμία αλλαγή.
Debugging: (Αποσφαλμάτωση) Κάθε φορά που παρουσιάζεται σφάλμα σε σενάρια Python που χρησιμοποιούν ScriptForge, το μήνυμα σφάλματος που παρέχεται από τη στοίβα εκτέλεσης Python εμφανίζει τη γραμμή κώδικα που ενεργοποίησε το σφάλμα. Στα μηνύματα σφάλματος Basic δεν εμφανίζονται αυτές οι πληροφορίες.
Επισκεφτείτε τη Βοήθεια δεσμών ενεργειών της LibreOffice Python για περισσότερες πληροφορίες σχετικά με τη δέσμη ενεργειών Python χρησιμοποιώντας το LibreOffice.
Ανάλογα με το τι σκοπεύετε να επιτύχετε, μπορείτε να επιλέξετε μία από τις ακόλουθες προσεγγίσεις για την εκτέλεση σεναρίων Python στο LibreOffice:
Εκτέλεση σεναρίων εντός της τρέχουσας διεργασίας LibreOffice: Τα σενάρια Python εκτελούνται από τη διεργασία του LibreOffice χρησιμοποιώντας το μενού ή την επέκταση APSO για την κλήση των σεναρίων του χρήστη που είναι αποθηκευμένα στο φάκελο σεναρίων Python. Μπορείτε επίσης να χρησιμοποιήσετε το κέλυφος APSO Python για να εκτελέσετε διαδραστικά σενάρια Python.
Εκτέλεση σεναρίων χωριστά από τη διεργασία του LibreOffice: Τα σενάρια Python εκτελούνται από μια εξωτερική διεργασία που συνδέεται με μια εν εξελίξει διεργασία του LibreOffice χρησιμοποιώντας μια υποδοχή.
Εάν σκοπεύετε να εκτελέσετε σενάρια μέσα από τη διαδικασία του LibreOffice, συνιστάται να εγκαταστήσετε την επέκτασηAPSO (Alternative Script Organizer for Python). Ωστόσο, για να αναπτύξετε σενάρια Python εκτός του LibreOffice, μπορείτε να επιλέξετε το IDE της Python που προτιμάτε.
Ο ευκολότερος τρόπος για να ξεκινήσετε με τη δέσμη ενεργειών Python στο LibreOffice είναι να εγκαταστήσετε την επέκταση APSO. Αφού την εγκαταστήσετε, ανοίξτε οποιοδήποτε στοιχείο του LibreOffice και μεταβείτε στο
.Στο κύριο παράθυρο του APSO μεταβείτε στο
(Μενού - Κέλυφος Python).Εναλλακτικά, μπορείτε να ανοίξετε το APSO χρησιμοποιώντας την προεπιλεγμένη συντόμευση Alt + Shift + F11.
Τώρα μπορείτε να αρχίσετε να πληκτρολογείτε εντολές Python και το κέλυφος θα εκτυπώσει την αντίστοιχη έξοδο μετά την εκτέλεση κάθε γραμμής κώδικα.
Για να ξεκινήσετε να χρησιμοποιείτε τη βιβλιοθήκη ScriptForge, πρέπει να εισαγάγετε τη μέθοδο CreateScriptService, με την οποία θα μπορείτε να έχετε πρόσβαση στις υπηρεσίες που παρέχει η βιβλιοθήκη. Το παρακάτω παράδειγμα χρησιμοποιεί την υπηρεσία Basic για να εμφανίσει ένα πλαίσιο μηνύματος.
from scriptforge import CreateScriptService
bas = CreateScriptService("Basic")
bas.MsgBox("Hello!")
Για να εκτελέσετε το παραπάνω παράδειγμα, εισάγετε κάθε γραμμή στο κέλυφος της Python, μία προς μία, πατώντας το πλήκτρο Enter αφού πληκτρολογήσετε κάθε γραμμή κώδικα.
Τώρα μπορείτε να ξεκινήσετε να εκτελείτε εντολές Python χρησιμοποιώντας οποιαδήποτε από τις υπηρεσίες ScriptForge. Για παράδειγμα, το παρακάτω απόσπασμα κώδικα χρησιμοποιεί την υπηρεσία UI για να δημιουργήσει ένα κενό έγγραφο Writer.
ui = CreateScriptService("UI")
doc = ui.CreateDocument("Writer")
Μπορείτε να δημιουργήσετε τα δικά σας αρχεία Python και να τα επεξεργαστείτε με τον επεξεργαστή κειμένου που προτιμάτε. Αργότερα, μπορείτε να τους καλέσετε από οποιοδήποτε στοιχείο του LibreOffice.
Το πρώτο βήμα είναι να εντοπίσετε πού είναι αποθηκευμένα τα σενάρια χρήστη. Για αυτό, ανατρέξτε στη σελίδα βοήθειας Οργάνωση και τοποθεσία σεναρίων Python.
Τώρα μπορείτε να δημιουργήσετε ένα αρχείο κειμένου μέσα στο φάκελο σεναρίων χρήστη Python, για παράδειγμα sf_test.py, και να αρχίσετε να πληκτρολογείτε τα σενάρια σας.
Ακολουθεί ένα απλό παράδειγμα που λαμβάνει την αριθμητική τιμή από ένα κελί Calc και την αυξάνει κατά 1. Απλώς πληκτρολογήστε τον ακόλουθο κώδικα στο αρχείο 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, )
Αυτό το παράδειγμα δημιουργεί τη συνάρτηση increment_cell. Σημειώστε ότι το g_exportedScripts είναι μια πλειάδα που λέει ποιες συναρτήσεις θα εμφανίζονται στο LibreOffice ως σενάρια χρήστη.
Για να εκτελέσετε αυτό το σενάριο μέσα από ένα έγγραφο Calc:
Δημιουργήστε ή ανοίξτε ένα αρχείο Calc.
Εισαγάγετε κάποια αριθμητική τιμή στο κελί "A1" στο τρέχον φύλλο.
Μεταβείτε στο
.Επιλέξτε My Macros - sf_test στον επιλογέα της βιβλιοθήκης. Στη συνέχεια, επιλέξτε τη συνάρτηση increment_cell στον κατάλογο .
Πατήστε στο Εκτέλεση. Σημειώστε ότι η τιμή στο κελί "A1" αυξήθηκε κατά 1.
Μπορείτε επίσης να χρησιμοποιήσετε το APSO για να εκτελέσετε σενάρια Python με παρόμοιο τρόπο:
Αρχικά ανοίξτε το APSO μεταβαίνοντας στο
.Στον κατάλογο μακροεντολών, μεταβείτε στο
.Πατήστε στο
.Το πρώτο βήμα για την εκτέλεση σεναρίων από μια ξεχωριστή διαδικασία είναι να βρείτε το φάκελο όπου είναι εγκατεστημένο το LibreOffice. Υπάρχουν διάφοροι τρόποι για να το κάνετε αυτό, αλλά το ScriptForge παρέχει έναν γρήγορο τρόπο αναγνώρισης της διαδρομής εγκατάστασής σας. Για αυτό, ανοίξτε το κέλυφος Python του APSO και πληκτρολογήστε:
from scriptforge import CreateScriptService
fs = CreateScriptService("FileSystem")
fs.FileNaming = "SYS"
inst_dir = fs.InstallFolder
print(inst_dir)
Η έξοδος από τον παραπάνω κώδικα είναι ο βασικός κατάλογος όπου είναι εγκατεστημένο το LibreOffice. Τώρα πρέπει να προσθέσετε τον υποφάκελο "program" στη διαδρομή που προκύπτει. Αυτός είναι ο βασικός φάκελος από τον οποίο θα εκτελείτε σενάρια Python από μια ξεχωριστή διαδικασία.
Για παράδειγμα, ας υποθέσουμε ότι λαμβάνετε /usr/lib/libreoffice/ ως αποτέλεσμα από την εκτέλεση του παραπάνω κώδικα Python. Στη συνέχεια, πρέπει να θεωρήσετε το /usr/lib/libreoffice/program ως τη διαδρομή για την εκτέλεση των σεναρίων Python.
Για να εκτελέσετε σενάρια Python από μια ξεχωριστή διεργασία, πρέπει να ξεκινήσετε το LibreOffice με μερικές πρόσθετες επιλογές που καθορίζουν το όνομα του κεντρικού υπολογιστή και τη θύρα μέσω της οποίας η εξωτερική διεργασία θα επικοινωνεί με τη διαδικασία του στοιχείου του LibreOffice.
Ανοίξτε τη γραμμή εντολών του λειτουργικού σας συστήματος, μεταβείτε στο φάκελο προγράμματος του καταλόγου εγκατάστασης του LibreOffice και πληκτρολογήστε:
./soffice --accept='socket,host=localhost,port=2021;urp;'
Η παραπάνω εντολή θα ξεκινήσει το LibreOffice με ένα κανάλι επικοινωνίας ανοιχτό, έτσι ώστε άλλες διεργασίες να μπορούν να ανταλλάσσουν μηνύματα μαζί του.
Σημειώστε ότι το προηγούμενο παράδειγμα ανοίγει το κέντρο έναρξης του LibreOffice. Εάν θέλετε να ανοίξετε ένα συγκεκριμένο στοιχείο, για παράδειγμα το Writer, μπορείτε να προσθέσετε τη σημαία --writer στην εντολή, ως εξής.
./soffice --writer --accept='socket,host=localhost,port=2021;urp;'
Λάβετε υπόψη τις παραμέτρους host και port, οι οποίες σε αυτό το παράδειγμα είναι localhost και 2021, αντίστοιχα.
Ξεκινήστε το κέλυφος της Python από τον φάκελο program μέσα στη διαδρομή εγκατάστασης του LibreOffice. Ακολουθήστε τα παραπάνω βήματα για να μάθετε πώς να βρείτε τη διαδρομή εγκατάστασης.
Σε Linux / Mac OS:
$ cd /usr/lib/libreoffice/program
$ python
Σε Windows:
$ cd C:\Program Files\LibreOffice\program\
$ python.exe
Αυτό θα ανοίξει το κέλυφος της Python και τώρα μπορείτε να ξεκινήσετε να πληκτρολογείτε εντολές που θα εκτελεστούν από το LibreOffice. Αλλά πρώτα πρέπει να ρυθμίσετε τη σύνδεση υποδοχής.
from scriptforge import ScriptForge, CreateScriptService
ScriptForge(hostname='localhost', port=2021)
Διαβάστε την ενότητα Ρύθμιση PYTHONPATH παρακάτω σε περίπτωση σφαλμάτων κατά την εισαγωγή του scriptforge.py, ή του uno .py.
Η δεύτερη γραμμή του παραπάνω κώδικα ορίζει τις ρυθμίσεις host και port, έτσι ώστε το κέλυφος της Python να μπορεί να επικοινωνεί με μια εξελισσόμενη διαδικασία του LibreOffice που ανοίγει με τις ίδιες ρυθμίσεις υποδοχής.
Τώρα μπορείτε να εκτελέσετε άλλες εντολές Python και θα μπορούν να επικοινωνούν με τη διαδικασία του LibreOffice. Για παράδειγμα:
ui = CreateScriptService("UI")
bas = CreateScriptService("Basic")
doc = ui.OpenDocument("~/Documents/myFile.ods")
bas.MsgBox(doc.DocumentType)
Ανάλογα με τη διαμόρφωση του λειτουργικού σας συστήματος, θα χρειαστεί να ορίσετε τη μεταβλητή περιβάλλοντος PYTHONPATH για να εισαγάγετε τη βιβλιοθήκη scriptforge.py, η οποία με τη σειρά της απαιτεί την εισαγωγή της βιβλιοθήκης uno.py.
Χρησιμοποιήστε το εργαλείο αναζήτησης αρχείων του λειτουργικού σας συστήματος για να προσδιορίσετε τον κατάλογο όπου βρίσκονται και τα δύο αυτά αρχεία.
Για παράδειγμα, σε μια προεπιλεγμένη εγκατάσταση του Ubuntu και τα δύο αρχεία ενδέχεται να βρίσκονται στη διεύθυνση:
scriptforge.py: Βρίσκεται στο /usr/lib/libreoffice/program
uno.py: Βρίσκεται στο /usr/lib/python3/dist-packages
Σε αυτήν την περίπτωση, ορίστε τη μεταβλητή περιβάλλοντος PYTHONPATH ως εξής πριν ξεκινήσετε τον διερμηνέα Python:
export PYTHONPATH=/usr/lib/libreoffice/program:/usr/lib/python3/dist-packages
Η τοποθεσία αυτών των αρχείων θα είναι διαφορετική για κάθε λειτουργικό σύστημα και για κάθε μέθοδο εγκατάστασης του LibreOffice.