Περιεχόμενα

# Υπηρεσία SFDocuments.Document

Η βιβλιοθήκη SFDocuments παρέχει μεθόδους και ιδιότητες για τη διευκόλυνση της διαχείρισης και του χειρισμού των εγγράφων του LibreOffice.

Μέθοδοι που ισχύουν για όλους τους τύπους εγγράφων (Έγγραφα κειμένου, Φύλλα, Παρουσιάσεις, κ.λπ.) παρέχονται από την υπηρεσία SFDocuments.Document. Μερικά παραδείγματα είναι:

- Άνοιγμα, κλείσιμο και αποθήκευση εγγράφων

- Πρόσβαση σε τυπικές ή προσαρμοσμένες ιδιότητες εγγράφων

Οι ιδιότητες, οι μέθοδοι ή τα ορίσματα που επισημαίνονται με (*) ΔΕΝ ισχύουν για έγγραφα Base.

Οι μέθοδοι και οι ιδιότητες που είναι ειδικές για ορισμένα στοιχεία του LibreOffice αποθηκεύονται σε ξεχωριστές υπηρεσίες, όπως SFDocuments.SF_Calc και SFDocuments.SF_Base.

Αν και η γλώσσα Basic δεν προσφέρει κληρονομικότητα μεταξύ κλάσεων αντικειμένων, οι τελευταίες υπηρεσίες μπορούν να θεωρηθούν ως υποκλάσεις της υπηρεσίας SFDocuments.Document. Τέτοιες υποκατηγορίες μπορούν να καλούν τις ιδιότητες και τις μεθόδους που περιγράφονται παρακάτω.

## Κλήση υπηρεσίας

Πριν τη χρήση της υπηρεσίας Document, πρέπει να φορτωθεί ή να εισαχθεί η βιβλιοθήκη ScriptForge:

• Οι μακροεντολές Basic απαιτούν τη φόρτωση της βιβλιοθήκης ScriptForge χρησιμοποιώντας την ακόλουθη πρόταση:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Τα σενάρια Python απαιτούν εισαγωγή από την ενότητα scriptforge:
από το scriptforge import CreateScriptService

Ακολουθούν τρεις παραλλαγές του τρόπου με τον οποίο μπορεί να κληθεί η υπηρεσία Document.

##### Σε Basic

Χρησιμοποιώντας τη μέθοδο getDocument από την υπηρεσία ScriptForge.UI:

        Dim ui As Object, oDoc As Object
        Set ui = CreateScriptService("UI")
        Set oDoc = ui.GetDocument("Untitled 1")

Εναλλακτικά, μπορείτε να χρησιμοποιήσετε τις μεθόδους CreateDocument και OpenDocument από την υπηρεσία UI.

        Set oDocA = ui.CreateDocument("Calc")
        Set oDocB = ui.OpenDocument("C:\Documents\MyFile.odt")

Χρήση ονόματος παραθύρου εάν το έγγραφο είναι ήδη ανοιχτό.

        Dim oDoc As Object
        Set oDoc = CreateScriptService("SFDocuments.Document", "Untitled 1") 'Default = ActiveWindow

Χρησιμοποιώντας το έγγραφο που αναφέρεται από το ThisComponent. Αυτό είναι ιδιαίτερα χρήσιμο όταν εκτελείτε μια μακροεντολή μέσα από το IDE της Basic .

        Dim oDoc As Object
        Set oDoc = CreateScriptService("Document", ThisComponent)

Από μια μακροεντολή που ενεργοποιείται από ένα συμβάν εγγράφου.

        Sub RunEvent(ByRef poEvent As Object)
            Dim oDoc As Object
            Set oDoc = CreateScriptService("SFDocuments.DocumentEvent", poEvent)
            ' (...)
        End Sub

Η υπηρεσία Document σχετίζεται στενά με τις υπηρεσίες UI και FileSystem.

Εκτός από την περίπτωση που το έγγραφο έκλεισε με πρόγραμμα με τη μέθοδο CloseDocument (τότε είναι περιττό), συνιστάται η απελευθέρωση πόρων μετά τη χρήση:

        Set oDoc = oDoc.Dispose()

##### Σε Python

        from scriptforge import CreateScriptService
        ui = CreateScriptService("UI")
        doc = ui.GetDocument("Untitled 1")
        # (...)
        doc.Dispose()

        docA = ui.CreateDocument("Calc")
        docB = ui.OpenDocument("C:\Documents\MyFile.odt")

        doc = CreateScriptService("SFDocuments.Document", "Untitled 1")

        bas = CreateScriptService("Basic")
        doc = CreateScriptService("Document", bas.ThisComponent)

        def RunEvent(event)
            doc = CreateScriptService("SFDocuments.DocumentEvent", Event)
            # (...)

Η χρήση του προθέματος "SFDocuments." κατά την κλήση της υπηρεσίας είναι προαιρετική.

## Ιδιότητες

Όνομα | Μόνο για ανάγνωση | Τύπος | Περιγραφή
--- | --- | --- | ---
CustomProperties (*) | Όχι | Dictionary service | Επιστρέφει μια παρουσία αντικειμένου ScriptForge.Dictionary. Μετά την ενημέρωση, μπορεί να μεταβιβαστεί ξανά στην ιδιότητα για ενημέρωση του εγγράφου. Μεμονωμένα στοιχεία του λεξικού μπορεί να είναι συμβολοσειρές, αριθμοί, ημερομηνίες (Basic) ή στοιχεία com.sun.star.util.Duration.
Description (*) | Όχι | String | Παρέχει πρόσβαση στην ιδιότητα Description (Περιγραφή) του εγγράφου (γνωστή και ως "Comments (Σχόλια)")
DocumentProperties (*) | Ναι | Dictionary service | Επιστρέφει ένα αντικείμενο ScriptForge.Dictionary που περιέχει όλες τις εγγραφές. Περιλαμβάνονται στατιστικά στοιχεία εγγράφων. Σημειώστε ότι είναι ειδικά για τον τύπο του εγγράφου. Για παράδειγμα, ένα έγγραφο Calc περιλαμβάνει μια καταχώρηση "CellCount". Άλλα έγγραφα όχι.
DocumentType | Ναι | String | Τιμή συμβολοσειράς με τον τύπο εγγράφου ("Base", "Calc", "Writer" κ.λπ.)
ExportFilters (*) | Ναι | String array | Επιστρέφει έναν κατάλογο με τα ονόματα φίλτρων εξαγωγής που ισχύουν για το τρέχον έγγραφο ως πίνακας συμβολοσειρών με βάση το μηδέν. Επιστρέφονται επίσης τα φίλτρα που χρησιμοποιούνται για εισαγωγή/εξαγωγή.
FileSystem | Ναι | String | Επιστρέφει μια συμβολοσειρά με τη διαδρομή URL στη ρίζα του εικονικού συστήματος αρχείων του εγγράφου. Χρησιμοποιήστε την υπηρεσία FileSystem για να δείτε τα περιεχόμενά της, καθώς και για να δημιουργήσετε, να ανοίξετε και να διαβάσετε αρχεία που είναι αποθηκευμένα σε αυτήν. Ανατρέξτε σε αυτήν τη σελίδα βοήθειας για να μάθετε περισσότερα σχετικά με τον τρόπο πρόσβασης και χειρισμού φακέλων και αρχείων στο εικονικό σύστημα αρχείων ενός αρχείου του LibreOffice.
ImportFilters (*) | Ναι | String array | Επιστρέφει έναν κατάλογο με τα ονόματα φίλτρων εισαγωγής που ισχύουν για το τρέχον έγγραφο ως πίνακας συμβολοσειρών με βάση το μηδέν. Επιστρέφονται επίσης τα φίλτρα που χρησιμοποιούνται για εισαγωγή/εξαγωγή.
IsBase IsCalc IsDraw IsFormDocument IsImpress IsMath IsWriter | Ναι | Boolean | Ακριβώς μία από αυτές τις ιδιότητες είναι True για ένα δεδομένο έγγραφο.
Keywords (*) | Όχι | String | Παρέχει πρόσβαση στην ιδιότητα Keywords (Λέξεις-κλειδιά) του εγγράφου. Αντιπροσωπεύεται ως κατάλογος λέξεων-κλειδιών διαχωρισμένα με κόμμα
Readonly (*) | Ναι | Boolean | True (αληθές)εάν το έγγραφο βρίσκεται στην πραγματικότητα σε λειτουργία μόνο για ανάγνωση
StyleFamilies (*) | Ναι | String array | Κατάλογος διαθέσιμων οικογενειών τεχνοτροπιών. Ισχύει για όλους τους τύπους εγγράφων εκτός από το Base.
Subject (*) | Όχι | String | Παρέχει πρόσβαση στην ιδιότητα Subject (Θέμα) του εγγράφου.
Title (*) | Όχι | String | Παρέχει πρόσβαση στην ιδιότητα Title (τίτλος) του εγγράφου.
XComponent | Ναι | Αντικείμενο UNO | Το αντικείμενο UNO com.sun.star.lang.XComponent, ή com.sun.star.comp.dba.ODatabaseDocument που αντιπροσωπεύει το έγγραφο.
XDocumentSettings (*) | Ναι | Αντικείμενο UNO | Ένα αντικείμενο UNO com.sun.star.XXX.DocumentSettings, όπου το XXX είναι είτε sheet, text, drawing, ή presentation. Αυτό το αντικείμενο δίνει πρόσβαση στις εσωτερικές ιδιότητες UNO που είναι συγκεκριμένες για τον τύπο του εγγράφου.

### Παράδειγμα:

##### Σε Basic

Το παρακάτω παράδειγμα εκτυπώνει όλες τις ιδιότητες ενός εγγράφου. Σημειώστε ότι το αντικείμενο oDoc που επιστρέφεται με τη μέθοδο UI.OpenDocument είναι αντικείμενο SFDocuments.Document.

        Dim ui as Variant : Set ui = CreateScriptService("UI")
        Dim oDoc as Object
        Set oDoc = ui.OpenDocument("C:\Documents\MyFile.ods")
        Dim propDict as Object
        Set propDict = oDoc.DocumentProperties
        Dim keys as Variant : propKeys = propDict.Keys
        Dim k as String, strProp as String
        For Each k In propKeys
            strProp = strProp & k & ": " & propDict.Item(k) & CHR$(10)
        Next k
        MsgBox strProp
        oDoc.CloseDocument()

##### Σε Python

Για να αποκτήσετε πρόσβαση στις ιδιότητες εγγράφων σε ένα σενάριο Python, ο χρήστης πρέπει να έχει απευθείας πρόσβαση σε αυτές χρησιμοποιώντας τα ονόματά τους, όπως φαίνεται παρακάτω:

        doc = ui.GetDocument(r"C:\Documents\MyFile.ods")
        msg = doc.Title + '\n' + doc.Description + '\n' + doc.Keywords
        bas = CreateScriptService("Basic")
        bas.MsgBox(msg)
        doc.CloseDocument()

Κατάλογος μεθόδων στην υπηρεσία εγγράφων
Activate CloseDocument CreateMenu DeleteStyles Echo ExportAsPDF | PrintOut RemoveMenu RunCommand Save SaveAs | SaveCopyAs SetPrinter Style Toolbars XStyle

## Activate

Επιστρέφει True εάν το έγγραφο μπορούσε να ενεργοποιηθεί. Διαφορετικά, δεν υπάρχει καμία αλλαγή στην πραγματική διεπαφή χρήστη. Είναι ισοδύναμο με τη μέθοδο Activate (Ενεργοποίηση) της υπηρεσίας UI.

Αυτή η μέθοδος είναι χρήσιμη όταν χρειάζεται να εστιάσετε σε ένα έγγραφο που είναι ελαχιστοποιημένο ή κρυφό.

### Σύνταξη:

svc.Activate(): bool

### Παράδειγμα:

Το παρακάτω παράδειγμα θεωρεί ότι το αρχείο "My_File.ods" είναι ήδη ανοιχτό αλλά δεν είναι ενεργό.

##### Σε Basic

        Dim oDoc As Object
        Set oDoc = CreateScriptService("Document", "MyFile.ods")
        oDoc.Activate()

##### Σε Python

        doc = CreateScriptService("Document", "MyFile.ods")
        doc.Activate()

Λάβετε υπόψη ότι μπορείτε να καλέσετε την υπηρεσία Document περνώντας στο CreateScriptService, είτε "Document", ή "SFDocuments.Document"

## CloseDocument

Κλείνει το έγγραφο. Εάν το έγγραφο είναι ήδη κλειστό, ανεξάρτητα από το πώς έκλεισε το έγγραφο, αυτή η μέθοδος δεν έχει κανένα αποτέλεσμα και επιστρέφει False.

Η μέθοδος θα επιστρέψει επίσης False εάν ο χρήστης αρνηθεί να την κλείσει.

Επιστρέφει True εάν το έγγραφο έκλεισε με επιτυχία.

### Σύνταξη:

svc.CloseDocument(saveask: bool = True): bool

### Παράμετροι:

saveask : Εάν είναι True (προεπιλογή), ο χρήστης καλείται να επιβεβαιώσει εάν οι αλλαγές πρέπει να εγγραφούν στο δίσκο. Αυτό το όρισμα αγνοείται εάν το έγγραφο δεν τροποποιήθηκε.

### Παράδειγμα:

##### Σε Basic

        If oDoc.CloseDocument(True) Then
            ' ...
        End If

##### Σε Python

        if doc.CloseDocument(True):
            # ...

## CreateMenu

Δημιουργεί μια νέα καταχώρηση μενού στη γραμμή μενού ενός δεδομένου παραθύρου εγγράφου.

Αυτή η μέθοδος επιστρέφει μια παρουσία της υπηρεσίας SFWidgets.Menu.

Το μενού που δημιουργήθηκε είναι διαθέσιμο μόνο κατά την τρέχουσα συνεδρία του LibreOffice και δεν αποθηκεύεται ούτε στο έγγραφο ούτε στις καθολικές ρυθμίσεις της εφαρμογής. Ως εκ τούτου, το κλείσιμο του παραθύρου του εγγράφου θα εξαφανίσει το μενού. Θα εμφανιστεί ξανά μόνο όταν εκτελεστεί ξανά η μακροεντολή που δημιουργεί το μενού.

### Σύνταξη:

svc.CreateMenu(menuheader: str, [before: any], submenuchar: str = ">"): svc

### Παράμετροι:

menuheader (κεφαλίδα μενού): Το όνομα ανώτατου επιπέδου του νέου μενού.

before (πριν): Το όνομα (ως συμβολοσειρά) ή η θέση (ως ακέραιος αριθμός που ξεκινά από το 1) ενός υπάρχοντος μενού πριν από το οποίο θα τοποθετηθεί το νέο μενού. Εάν δεν οριστεί τιμή για αυτό το όρισμα, το μενού θα δημιουργηθεί στην τελευταία θέση στη γραμμή μενού.

submenuchar (χαρακτήρας υπομενού): Το διαχωριστικό που χρησιμοποιείται για τη δημιουργία δέντρων μενού κατά την κλήση μεθόδων ως AddItem (προσθήκη στοιχείου) από την υπηρεσία Menu (μενού). Η προεπιλεγμένη τιμή είναι ">".

### Παράδειγμα:

##### Σε Basic

        Dim oDoc as Object, oMenu as Object
        Set oDoc = CreateScriptService("Document")
        Set oMenu = oDoc.CreateMenu("My Menu")
        With oMenu
            ' Προσθήκη στοιχείων στο μενού
            .AddItem("Item A")
            .AddItem("Item B")
            ' ...
            ' Μετά τη δημιουργία του μενού, η παρουσία της υπηρεσίας μπορεί να απορριφθεί
            .Dispose()
        End With

##### Σε Python

        doc = CreateScriptService("Document")
        menu = doc.CreateMenu("My Menu")
        menu.AddItem("Item A")
        menu.AddItem("Item B")
        # ...
        menu.Dispose()

Ανατρέξτε στη σελίδα βοήθειας SFWidgets.Menu για να μάθετε περισσότερα σχετικά με τον τρόπο δημιουργίας/ κατάργησης των μενού στα παράθυρα του εγγράφου του LibreOffice.

## DeleteStyles

Καταργεί μι; μεμονωμένη τεχνοτροπία, ή μια σειρά τεχνοτροπίες που δίνονται με τα ονόματά τους σε μια συγκεκριμένη οικογένεια τεχνοτροπιών. Μόνο οι τεχνοτροπίες που ορίζονται από το χρήστη μπορούν να διαγραφούν, οι ενσωματωμένες τεχνοτροπίες αγνοούνται. Ισχύει για όλους τους τύπους εγγράφων εκτός από τα Base και FormDocument.

### Σύνταξη:

svc.DeleteStyles(family: str, styleslist: str[1..*])

### Παράμετροι:

family: Μία από τις οικογένειες τεχνοτροπιών που υπάρχουν στο πραγματικό έγγραφο, ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων. Τα έγκυρα οικογενειακά ονόματα μπορούν να ανακτηθούν χρησιμοποιώντας την ιδιότητα StyleFamilies.

styleslist: Ένα μόνο όνομα τεχνοτροπίας ως συμβολοσειρά ή πίνακας ονομάτων τεχνοτροπίας. Τα ονόματα τεχνοτροπίας μπορεί να είναι μεταφρασμένα ή όχι. Η StylesList είναι συνήθως η έξοδος της εκτέλεσης μιας μεθόδου Styles().

### Παράδειγμα:

##### Σε Basic

        ' Κατάργηση αχρησιμοποίητων τεχνοτροπιών παραγράφων
        Const family = "ParagraphStyles"
        aList = oDoc.Styles(family, used := False, userDefined := True)
        oDoc.DeleteStyles(family, aList)

##### Σε Python

        # Αφαίρεση τεχνοτροπιών σύμφωνα με ένα πρόθεμα
        a_list = doc.Styles('ParagraphStyles', namepattern = "Py*")
        doc.Styles('ParagraphStyles', a_list)

## Echo

Αναστέλλει τις ενημερώσεις διεπαφής χρήστη (UI) κατά την εκτέλεση μιας μακροεντολής. Προαιρετικά, ο δείκτης του ποντικιού μπορεί να μετατραπεί σε κλεψύδρα ενώ οι ενημερώσεις διεπαφής χρήστη έχουν ανασταλεί.

Αυτή η μέθοδος μπορεί να παρέχει ορισμένα πλεονεκτήματα απόδοσης για μακροεντολές που εκτελούν πολλές λειτουργίες που απαιτούν ενημερώσεις διεπαφής χρήστη.

### Σύνταξη:

svc.Echo(echoon: bool = True, hourglass: bool = False)

### Παράμετροι:

echoon: Καθορίστε False για να αναστείλετε τις ενημερώσεις διεπαφής χρήστη. Η προεπιλεγμένη τιμή είναι True, η οποία επιτρέπει ενημερώσεις διεπαφής χρήστη σε πραγματικό χρόνο.

hourglass: Καθορίστε True για να αλλάξετε τον δείκτη του ποντικιού σε κλεψύδρα (Προεπιλογή = False).

Η μετακίνηση του δείκτη του ποντικιού μετά την αλλαγή του σε κλεψύδρα μπορεί να τον κάνει να μεταβεί σε διαφορετικό δείκτη ανάλογα με το νέο του παρασκήνιο.

### Παράδειγμα:

##### Σε Basic

        ' Αναστέλλει τις ενημερώσεις διεπαφής χρήστη και αλλάζει το δείκτη του ποντικιού σε κλεψύδρα
        oDoc.Echo(EchoOn := False, HourGlass := True)
        ' Άλλες εντολές μακροεντολών
        ' ...
        ' Επαναφέρει τις ενημερώσεις διεπαφής χρήστη και το δείκτη του ποντικιού
        oDoc.Echo()

##### Σε Python

        doc.Echo(echoon = False, hourglass = True)
        ...
        doc.Echo()

## ExportAsPDF

Εξάγει το έγγραφο απευθείας ως αρχείο PDF στην καθορισμένη τοποθεσία. Επιστρέφει True εάν το αρχείο PDF δημιουργήθηκε με επιτυχία.

Οι επιλογές εξαγωγής μπορούν να οριστούν είτε χειροκίνητα χρησιμοποιώντας το παράθυρο διαλόγου Αρχείο - Εξαγωγή ως - Εξαγωγή ως PDF, είτε καλώντας τις μεθόδους GetPDFExportOptions και SetPDFExportOptions από το Υπηρεσία Session.

### Σύνταξη:

svc.ExportAsPDF(filename: str, overwrite: bool = False, opt pages: str, opt password: str, opt watermark: str): bool

### Παράμετροι:

filename (όνομα αρχείου): Η πλήρης διαδρομή και το όνομα αρχείου του PDF που θα δημιουργηθεί. Πρέπει να ακολουθεί τη σημειογραφία SF_FileSystem.FileNaming.

(αντικατάσταση): Καθορίζει εάν το αρχείο προορισμού μπορεί να αντικατασταθεί (Προεπιλογή = False). Θα προκύψει σφάλμα εάν το overwrite οριστεί σε False και το αρχείο προορισμού υπάρχει ήδη.

pages (σελίδες): Συμβολοσειρά που καθορίζει ποιες σελίδες θα εξαχθούν. Αυτό το όρισμα χρησιμοποιεί την ίδια συμειογραφία όπως στο παράθυρο διαλόγου Αρχείο - Εξαγωγή ως - Εξαγωγή ως PDF.

password (κωδικός πρόσβασης): Καθορίζει έναν κωδικό πρόσβασης για το άνοιγμα του αρχείου PDF.

watermark (υδατογράφημα): Κείμενο που θα χρησιμοποιηθεί ως υδατογράφημα στο αρχείο PDF, το οποίο θα σχεδιαστεί σε κάθε σελίδα του PDF που προκύπτει.

### Παράδειγμα:

##### Σε Basic

Το ακόλουθο παράδειγμα εξάγει το τρέχον έγγραφο ως αρχείο PDF, ορίζει έναν κωδικό πρόσβασης και αντικαθιστά το αρχείο προορισμού εάν υπάρχει ήδη.

        oDoc.ExportAsPDF("C:\User\Documents\myFile.pdf", Password := "1234", Overwrite := True)

Το παρακάτω απόσπασμα κώδικα λαμβάνει τις τρέχουσες επιλογές εξαγωγής PDF και τις χρησιμοποιεί για τη δημιουργία του αρχείου PDF.

        Dim exportSettings as Object, oSession as Object
        oSession = CreateScriptService("Session")
        exportSettings = oSession.GetPDFExportOptions()
        ' Ορίζει σε True την επιλογή εξαγωγής σχολίων ως σημειώσεων PDF
        exportSettings.ReplaceItem("ExportNotes", True)
        oSession.SetPDFExportOptions(exportSettings)
        oDoc.ExportAsPDF("C:\User\Documents\myFile.pdf")

##### Σε Python

        doc.ExportAsPDF(r"C:\User\Documents\myFile.pdf", password = "1234", overwrite = True)

        session = CreateScriptService("Session")
        exportSettings = oSession.GetPDFExportOptions()
        exportSettings.ReplaceItem("ExportNotes", True)
        session.SetPDFExportOptions(exportSettings)
        doc.ExportAsPDF(r"C:\User\Documents\myFile.pdf")

## PrintOut

Αυτή η μέθοδος στέλνει τα περιεχόμενα του εγγράφου στον προεπιλεγμένο εκτυπωτή ή στον εκτυπωτή που ορίζεται από τη μέθοδο SetPrinter.

Επιστρέφει True εάν το έγγραφο εκτυπώθηκε με επιτυχία.

### Σύνταξη:

svc.PrintOut(pages: str = "", copies: num = 1): bool

### Παράμετροι:

pages (σελίδες): Οι σελίδες που θα εκτυπωθούν ως συμβολοσειρά, όπως στη διεπαφή χρήστη. Παράδειγμα: "1-4;10;15-18". Η προεπιλογή είναι όλες οι σελίδες.

copies (αντίγραφα): Ο αριθμός των αντιγράφων. Η προεπιλογή είναι 1.

### Παράδειγμα:

##### Σε Basic

        If oDoc.PrintOut("1-4;10;15-18", Copies := 2) Then
            ' ...
        End If

##### Σε Python

        if doc.PrintOut(copies=3, pages='45-88'):
            # ...

## RemoveMenu

Καταργεί ένα μενού ανώτατου επιπέδου από τη γραμμή μενού ενός δεδομένου παραθύρου εγγράφου.

Επιστρέφει True εάν το καθορισμένο μενού μπορούσε να αφαιρεθεί. Εάν το καθορισμένο μενού δεν υπάρχει, η μέθοδος επιστρέφει False.

Αυτή η μέθοδος μπορεί να χρησιμοποιηθεί για την κατάργηση οποιασδήποτε καταχώρησης μενού από το παράθυρο του εγγράφου, συμπεριλαμβανομένων των προεπιλεγμένων μενού. Ωστόσο, καμία από αυτές τις αλλαγές στη γραμμή μενού δεν αποθηκεύεται στο έγγραφο ή στις ρυθμίσεις της εφαρμογής. Για να επαναφέρετε τη γραμμή μενού στις προεπιλεγμένες ρυθμίσεις, απλώς κλείστε και ανοίξτε ξανά το παράθυρο του εγγράφου.

### Σύνταξη:

svc.RemoveMenu(menuheader: str): bool

### Παράμετροι:

menuheader (κεφαλίδα μενού): Το όνομα ανώτατου επιπέδου του μενού που πρόκειται να αφαιρεθεί.

### Παράδειγμα:

##### Σε Basic

        Dim oDoc as Object
        Set oDoc = CreateScriptService("Document")
        oDoc.RemoveMenu("My Menu")

##### Σε Python

        doc = CreateScriptService("Document")
        doc.RemoveMenu("My Menu")

Ανατρέξτε στη σελίδα βοήθειας SFWidgets.Menu για να μάθετε περισσότερα σχετικά με τον τρόπο δημιουργίας/ κατάργησης των μενού στα παράθυρα του εγγράφου του LibreOffice.

## RunCommand

Εκτελεί μια εντολή UNO στο παράθυρο του εγγράφου που σχετίζεται με την παρουσία της υπηρεσίας. Μερικές τυπικές εντολές είναι: Save, SaveAs, ExportToPDF, Undo, Copy, Paste, κ.λπ.

Το ίδιο το έγγραφο δεν χρειάζεται να είναι ενεργό για να μπορεί να εκτελεί εντολές.

Οι εντολές μπορούν να εκτελεστούν με ή χωρίς ορίσματα. Τα ορίσματα δεν επικυρώνονται πριν από την εκτέλεση της εντολής. Εάν η εντολή ή τα ορίσματά της δεν είναι έγκυρα, τότε δεν θα συμβεί τίποτα.

Για έναν πλήρη κατάλογο εντολών UNO που μπορούν να εκτελεστούν στο LibreOffice, ανατρέξτε στη σελίδα Wiki Development/DispatchCommands.

### Σύνταξη:

svc.RunCommand(command: str, [args: any])

### Παράμετροι:

command (εντολή): συμβολοσειρά με διάκριση πεζών-κεφαλαίων που περιέχει το όνομα εντολής UNO. Η συμπερίληψη του προθέματος ".uno:" στην εντολή είναι προαιρετική. Η ίδια η εντολή δεν ελέγχεται για ορθότητα. Εάν δεν συμβεί τίποτα μετά την κλήση της εντολής, τότε η εντολή είναι πιθανώς λάθος.

args (ορίσματα): Για κάθε όρισμα που θα μεταβιβαστεί στην εντολή, καθορίστε ένα ζεύγος που περιέχει το όνομα και την τιμή του ορίσματος.

### Παράδειγμα:

##### Σε Basic

Το παρακάτω παράδειγμα εκτελεί την εντολή SelectData σε ένα αρχείο Calc που ονομάζεται "MyFile.ods", το οποίο θα έχει ως αποτέλεσμα την επιλογή της περιοχής δεδομένων με βάση το τρέχον επιλεγμένο κελί. Σημειώστε ότι αυτή η εντολή δεν απαιτεί ορίσματα.

        Set oDoc = CreateScriptService("Document", "MyFile.ods")
        oDoc.RunCommand("SelectData")

Ακολουθεί ένα παράδειγμα που εκτελεί την εντολή UNO ReplaceAll και μεταβιβάζει τιμές για τα ορίσματά της SearchString και ReplaceString. Η εκτέλεση αυτής της εντολής θα αντικαταστήσει κάθε εμφάνιση της συμβολοσειράς "abc" από "ABC" στο τρέχον φύλλο.

        ' Τα ορίσματα πέρασαν στην εντολή:
        ' SearchString  = "abc"
        ' ReplaceString = "ABC"
        oDoc.RunCommand(".uno:ReplaceAll", "SearchString", "abc", "ReplaceString", "ABC")

Σημειώστε ότι η κλήση της εντολής ReplaceAll χωρίς ορίσματα θα ανοίξει το παράθυρο διαλόγου Εύρεση και αντικατάσταση.

##### Σε Python

        doc = CreateScriptService("Document", "MyFile.ods")
        doc.RunCommand("SelectData")

        doc.RunCommand(".uno:ReplaceAll", "SearchString", "abc", "ReplaceString", "ABC")

Στην Python είναι επίσης δυνατό να καλέσετε το RunCommand χρησιμοποιώντας ορίσματα λέξεων-κλειδιών:

        doc.RunCommand(".uno:ReplaceAll", SearchString = "abc", ReplaceString = "ABC")

Κάθε στοιχείο του LibreOffice έχει διαθέσιμο το δικό του σύνολο εντολών. Ένας εύκολος τρόπος για να μάθετε εντολές είναι να μεταβείτε στα Εργαλεία - Προσαρμογή - Πληκτρολόγιο. Όταν τοποθετείτε το ποντίκι σας πάνω από μια συνάρτηση στον κατάλογο Function (συναρτήσεις), θα εμφανιστεί μια επεξήγηση με την αντίστοιχη εντολή UNO.

## Save

Αποθηκεύει το έγγραφο στη θέση του αρχείου από την οποία φορτώθηκε. Η μέθοδος αγνοείται εάν το έγγραφο δεν τροποποιήθηκε.

Επιστρέφει False εάν δεν ήταν δυνατή η αποθήκευση του εγγράφου. Παρουσιάζεται σφάλμα εάν το αρχείο είναι ανοιχτό ως μόνο για ανάγνωση ή εάν πρόκειται για νέο αρχείο που δεν έχει αποθηκευτεί ακόμα.

Το ίδιο το έγγραφο δεν χρειάζεται να είναι ενεργό για την εκτέλεση αυτής της μεθόδου.

### Σύνταξη:

svc.Save(): bool

### Παράδειγμα:

##### Σε Basic

        If Not oDoc.Save() Then
            ' ...
        End If

##### Σε Python

        if not doc.Save():
            # ...

## SaveAs

Αποθηκεύει το έγγραφο στη δεδομένη θέση αρχείου. Η νέα θέση γίνεται το νέο όνομα αρχείου στο οποίο θα εφαρμοστούν απλές κλήσεις της μεθόδου Save (Αποθήκευση).

Επιστρέφει False εάν δεν ήταν δυνατή η αποθήκευση του εγγράφου. Παρουσιάζεται σφάλμα όταν απορρίπτεται η αντικατάσταση του προορισμού, ή όταν ο προορισμός έχει σύνολο γνωρισμάτων μόνο για ανάγνωση.

Το ίδιο το έγγραφο δεν χρειάζεται να είναι ενεργό για την εκτέλεση αυτής της μεθόδου.

### Σύνταξη:

svc.SaveAs(filename: str, overwrite: bool = False, password: str = '', filtername: str = '', filteroptions: str = ''): bool

### Παράμετροι:

filename (όνομα αρχείου): Μια συμβολοσειρά που περιέχει το όνομα αρχείου που θα χρησιμοποιηθεί. Πρέπει να ακολουθεί τη σημειογραφία SF_FileSystem.FileNaming.

overwrite (αντικατάσταση): Εάν είναι True, το αρχείο προορισμού ενδέχεται να αντικατασταθεί (προεπιλογή = False).

password (*) (κωδικός πρόσβασης): Μια συμβολοσειρά χωρίς διάστημα για την προστασία του εγγράφου.

filtername (*) (όνομα φίλτρου): Το όνομα ενός φίλτρου που πρέπει να χρησιμοποιηθεί για την αποθήκευση του εγγράφου. Εάν αυτό το όρισμα μεταβιβαστεί, τότε το φίλτρο πρέπει να υπάρχει.

filteroptions (*) (επιλογές φίλτρου): Μια προαιρετική συμβολοσειρά επιλογών που σχετίζεται με το φίλτρο.

### Παράδειγμα:

##### Σε Basic

        oDoc.SaveAs("C:\Documents\NewCopy.odt", overwrite := True)

##### Σε Python

        doc.SaveAs(r"C:\Documents\NewCopy.odt", overwrite = True)

## SaveCopyAs

Αποθηκεύει ένα αντίγραφο ή εξάγει το έγγραφο στη δεδομένη θέση αρχείου. Η πραγματική τοποθεσία παραμένει αμετάβλητη.

Επιστρέφει False εάν δεν ήταν δυνατή η αποθήκευση του εγγράφου. Παρουσιάζεται σφάλμα όταν απορρίπτεται η αντικατάσταση του προορισμού, ή όταν ο προορισμός έχει σύνολο γνωρισμάτων μόνο για ανάγνωση.

Το ίδιο το έγγραφο δεν χρειάζεται να είναι ενεργό για την εκτέλεση αυτής της μεθόδου.

### Σύνταξη:

svc.SaveCopyAs(filename: str, overwrite: bool = False, password: str = '', filtername: str = '', filteroptions: str = ''): bool

### Παράμετροι:

filename (όνομα αρχείου): Μια συμβολοσειρά που περιέχει το όνομα αρχείου που θα χρησιμοποιηθεί. Πρέπει να ακολουθεί τη σημειογραφία SF_FileSystem.FileNaming.

overwrite (αντικατάσταση): Εάν είναι True, το αρχείο προορισμού ενδέχεται να αντικατασταθεί (προεπιλογή = False).

password (*) (κωδικός πρόσβασης): Μια συμβολοσειρά χωρίς διάστημα για την προστασία του εγγράφου.

filtername (*) (όνομα φίλτρου): Το όνομα ενός φίλτρου που πρέπει να χρησιμοποιηθεί για την αποθήκευση του εγγράφου. Εάν αυτό το όρισμα μεταβιβαστεί, τότε το φίλτρο πρέπει να υπάρχει.

filteroptions (*) (επιλογές φίλτρου): Μια προαιρετική συμβολοσειρά επιλογών που σχετίζεται με το φίλτρο.

### Παράδειγμα:

##### Σε Basic

        oDoc.SaveCopyAs("C:\Documents\Copy2.odt", Overwrite := True)

##### Σε Python

        doc.SaveCopyAs(r"C:\Documents\Copy2.odt", overwrite = True)

## SetPrinter

Καθορίζει τις επιλογές εκτυπωτή για το έγγραφο.

Επιστρέφει True όταν είναι επιτυχές.

### Σύνταξη:

svc.SetPrinter(opt printer: str, opt orientation: str, paperformat: str): bool

### Παράμετροι:

printer (εκτυπωτής): Το όνομα της ουράς του εκτυπωτή όπου θα εκτυπωθεί. Όταν απουσιάζει, ορίζεται ο προεπιλεγμένος εκτυπωτής.

orientation (προσανατολισμός): Είτε PORTRAIT (κατακόρυφα), είτε LANDSCAPE (οριζόντια). Όταν απουσιάζει, αφήνεται αμετάβλητο σε σχέση με τις ρυθμίσεις του εκτυπωτή.

performat (μορφή χαρτιού): Καθορίζει τη μορφή χαρτιού ως τιμή συμβολοσειράς που μπορεί να είναι είτε A3, A4, A5, >LETTER, LEGAL ή TABLOID. Αφήνεται αμετάβλητο όταν απουσιάζει.

### Παράδειγμα:

##### Σε Basic

        oDoc.SetPrinter(Orientation := "PORTRAIT")

##### Σε Python

        doc.SetPrinter(paperformat='TABLOID')

## Styles

Ανακτά έναν κατάλογο τεχνοτροπιών που αντιστοιχεί σε προαιρετικά σύνθετα κριτήρια, ο πίνακας που επιστρέφεται μπορεί να είναι κενός. Ισχύει για όλους τους τύπους εγγράφων εκτός από τη Base.

### Σύνταξη:

svc.Styles(family, opt namepattern: str, opt used: bool, opt userdefined: bool, opt parentstyle: str, opt category: str): str[0..*])

family: Μία από τις οικογένειες τεχνοτροπιών που υπάρχουν στο πραγματικό έγγραφο, ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων. Τα έγκυρα οικογενειακά ονόματα μπορούν να ανακτηθούν χρησιμοποιώντας την ιδιότητα StyleFamilies.

category: Μια συμβολοσειρά χωρίς διάκριση πεζών-κεφαλαίων: TEXT, CHAPTER, LIST, INDEX, EXTRA, HTML. Για τις αντίστοιχες έννοιές τους, ανατρέξτε στην τεκμηρίωση API κατηγορία τεχνοτροπίας παραγράφου.

Αυτό το όρισμα αγνοείται όταν η οικογένεια διαφέρει από το "ParagraphStyles".

namepattern: Ένα φίλτρο στα ονόματα τεχνοτροπιών, ως μοτίβο συμβολοσειράς με διάκριση πεζών-κεφαλαίων. Τα ονόματα περιλαμβάνουν τα εσωτερικά και τοπικά ονόματα.

Οι αποδεκτοί χαρακτήρες υποκατάστασης είναι:

- ο "?" που αντιπροσωπεύει οποιονδήποτε μεμονωμένο χαρακτήρα.

- το "*" που αντιπροσωπεύει μηδέν, έναν ή πολλούς χαρακτήρες

parentstyle: Όταν υπάρχουν, διατηρούνται μόνο οι κατιόντες του συγκεκριμένου ονόματος, τοπικού ή όχι, της γονικής τεχνοτροπίας.

used: Όταν είναι True, η τεχνοτροπία πρέπει να χρησιμοποιείται στο έγγραφο, όταν απουσιάζει το όρισμα αγνοείται.

userdefined: Όταν είναι True, η τεχνοτροπία πρέπει να έχει προστεθεί από τον χρήστη, είτε στο έγγραφο είτε στο πρότυπό του, όταν δεν υπάρχει, το όρισμα αγνοείται.

### Παράδειγμα:

##### Σε Basic

        Dim vStyles As Variant
        vStyles = oDoc.Styles("ParagraphStyles") 'Όλες οι τεχνοτροπίες στην οικογένεια
        vStyles = oDoc.Styles("Styles Paragraph", "H*") 'Επικεφαλίδα, Επικεφαλίδα 1, ...
        vStyles = oDoc.Styles("ParagraphStyles", Used := False, UserDefined := True) ' Όλες οι τεχνοτροπίες που ορίζονται από το χρήστη που δεν χρησιμοποιούνται
        vStyles = oDoc.Styles("ParagraphStyles", ParentStyle := "Standard") ' Όλες οι τεχνοτροπίες προέρχονται από την 'Προεπιλεγμένη τεχνοτροπία παραγράφου'

##### Σε Python

        vStyles = doc.Styles('ParagraphStyles') #Όλες οι τεχνοτροπίες στην οικογένεια
        vStyles = doc.Styles('Styles Paragraph', 'H*') #Heading, Heading 1, …
        vStyles = doc.Styles('ParagraphStyles', Used = False, UserDefined = True) # Όλες οι τεχνοτροπίες που ορίζονται από το χρήστη και δεν χρησιμοποιούνται
        vStyles = doc.Styles('ParagraphStyles', ParentStyle = 'Standard") # Όλες οι τεχνοτροπίες που προέρχονται από την "Προεπιλεγμένη τεχνοτροπία παραγράφου"

## Toolbars

Αυτή η μέθοδος επιστρέφει είτε έναν κατάλογο με τα διαθέσιμα ονόματα της γραμμής εργαλείων στο πραγματικό έγγραφο, είτε μια παρουσία υπηρεσίας SFWidgets.Toolbar.

### Σύνταξη:

svc.Toolbars(opt ToolbarName: str): uno
svc.Toolbars(): str[0..]

### Παράμετροι:

ToolbarName: Το συνηθισμένο όνομα μιας από τις διαθέσιμες γραμμές εργαλείων.

### Παράδειγμα:

##### Σε Basic

        Dim oToolbar As Object
        Set oToolbar = oDoc.Toolbars("myToolbar")

##### Σε Python

        a_list = doc.Toolbars()

## XStyles

Αυτή η μέθοδος επιστρέφει την αναπαράσταση UNO μιας δεδομένης τεχνοτροπίας για όλους τους τύπους εγγράφων εκτός από τη Βάση. Nothing επιστρέφεται όταν το StyleName δεν υπάρχει στη συγκεκριμένη οικογένεια.

### Σύνταξη:

svc.XStyles(family: str, stylename: str): uno

### Παράμετροι:

family: Μία από τις οικογένειες τεχνοτροπιών που υπάρχουν στο πραγματικό έγγραφο, ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων. Τα έγκυρα οικογενειακά ονόματα μπορούν να ανακτηθούν χρησιμοποιώντας την ιδιότητα StyleFamilies.

stylename: Μία από τις τεχνοτροπίες που υπάρχουν στη δεδομένη οικογένεια, ως συμβολοσειρά με διάκριση πεζών-κεφαλαίων. Το StyleName μπορεί να είναι τοπικό ή όχι.

### Παράδειγμα:

##### Σε Basic

        Dim oStyle As Object
        Set oStyle = oDoc.XStyle("ParagraphStyle", "Heading 2")

##### Σε Python

        oStyle = doc.XStyle('ParagraphStyle', 'Heading 2')

Όλες οι ρουτίνες ή αναγνωριστικά του ScriptForge στη Basic που έχουν το πρόθεμα χαρακτήρα υπογράμμισης "_" δεσμεύονται για εσωτερική χρήση. Δεν προορίζονται να χρησιμοποιηθούν σε μακροεντολές Basic ή σενάρια Python.

Σχετικά θέματα

Υπηρεσία ScriptForge.Dictionary

Υπηρεσία ScriptForge.UI

Υπηρεσία SFWidgets.Menu

Παρακαλούμε, υποστηρίξτε μας!