Edukiak
Indizea 🔎︎

# SFDocuments.Document zerbitzua

SFDocuments liburutegiak LibreOffice dokumentuak kudeatu eta manipulatzeko metodoak eta propietateak eskaintzen ditu.

SFDocuments.Document zerbitzuak dokumentu mota guztietan (testu-dokumentuak, kalkulu-orriak, aurkezpenak, etab.) aplikagarriak diren metodoak eskaintzen ditu. Zenbait adibide:

- Dokumentuak irekitzea, ixtea eta gordetzea

- Dokumentuen propietate estandarrak edo pertsonalizatuak atzitzea

(*) ikurrarekin markatutako propietateak, metodoak eta argumentuak EZ dira aplikagarriak Base dokumentuetan.

LibreOffice osagai jakin batzuetan soilik erabili daitezkeen metodo eta propietateak zerbitzu bereizietan biltegiratzen dira, adibidez SFDocuments.SF_Calc eta SFDocuments.SF_Base zerbitzuetan.

Basic lengoaiak ez du objektu-klaseen arteko herentzia eskaintzen, baina azken zerbitzu horiek SFDocuments.Document zerbitzuaren azpiklasetzat hartu daitezke. Azpiklase horiek behean deskribatutako propietate eta metodoei deitu diezaiekete.

## Zerbitzuari deitzea

Behean, Document zerbitzuari deitzeko hiru aldera ikusi daitezke.

##### Basic lengoaian

ScriptForge.UI zerbitzuaren getDocument metodoa erabilita:

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

Horren ordez, UI zerbitzuaren CreateDocument eta OpenDocument ere erabili daitezke.

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

Zuzenean, dokumentua jadanik irekita badago.

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

Dokumentu-gertaera batetik abiarazitako makro batetik.

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

Document zerbitzuak erlazio estua du UI eta FileSystem zerbitzuekin.

Dokumentua 'CloseDocument' metodoa erabilita itxi denean salbu (kasu horretan, ez da beharrezkoa), gomendagarria da baliabideak askatzea haiek erabili ondoren:

        Set oDoc = oDoc.Dispose()

##### Python lengoaian

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

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

Ez da derrigorrezkoa "SFDocuments." aurrizkia erabiltzea zerbitzuari deitzen zaionean.

## Propietateak

Izena | Irakurtzeko soilik | Mota | Deskribapena
CustomProperties (*) | Ez | Dictionary service | ScriptForge.Dictionary objektuaren instantzia bat itzultzen du. Eguneratu ondoren, berriro dokumentua eguneratzeko propietateari pasatu ahal zaio. Kateak, zenbakiak (Basic) datak edo com.sun.star.util.Duration elementuak izan daitezke hiztegiaren banakako dokumentuak.
Description (*) | Ez | String | Dokumentuaren 'Description' ("Comments" izenarekin ere ezaguna) propietatea atzitzeko sarbidea ematen du.
DocumentProperties (*) | Bai | Dictionary service | Sarrera guztiak dituen ScriptForge.Dictionary objektu bat itzultzen du. Dokumentu-estatistiak barne hartzen ditu. Kontuan izan dokumentu motaren araberakoak direla. Adibidez, Calc dokumentu batek "CellCount" sarrera bat du. Beste dokumentu batzuek ez dute.
DocumentType | Bai | String | Dokumentu mota ("Base", "Calc", "Writer", etab.) adierazten duen kate-balioa.
IsBase IsCalc IsDraw IsImpress IsMath IsWriter | Bai | Boolean | Propietate horietako bat True da dokumentu jakin baterako.
Keywords (*) | Ez | String | Dokumentuaren 'Keywords' propietatea atzitzeko sarbidea ematen du. Komaz banandutako gako-hitzen zerrenda gisa irudikatzen da.
Readonly (*) | Bai | Boolean | True dokumentua soilik irakurtzeko moduan badago jadanik.
Subject (*) | Ez | String | Dokumentuaren 'Subject' propietatea atzitzeko sarbidea ematen du.
Title (*) | Ez | String | Dokumentuaren 'Title' propietatea atzitzeko sarbidea ematen du.
XComponent | Bai | UNO objektua | Dokumentua ordezkatzen duencom.sun.star.lang.XComponent edo com.sun.star.comp.dba.ODatabaseDocument UNO objektua

### Adibidea:

##### Basic lengoaian

Beheko adibideak dokumentu baten propietate guztiak inprimatzen ditu. Kontuan hartu UI.OpenDocument metodoak itzultzen duen oDoc objektua SFDocuments.Document objektu bat dela.

        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 lengoaian

Dokumentuaren propietateak Python script batetik atzitzeko, erabiltzaileak zuzenean atzitu behar ditu haien izenak erabilita, behean erakusten den moduan:

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

'Document' zerbitzuaren metodoen zerrenda
Activate CloseDocument Forms | RunCommand Save | SaveAs SaveCopyAs

## Activate

True itzultzen du dokumentua aktibatu badaiteke. Bestela, ez da aldaketarik egongo uneko erabiltzaile-interfazean. UI zerbitzuaren Activate metodoaren baliokidea da.

Metodo hau ikonotuta edo ezkutuan dagoen dokumentu bat fokuratu nahi denean da erabilgarria.

### Sintaxia:

svc.Activate(): bool

### Adibidea:

Beheko adibidean, "My_File.ods" fitxategia jadanik irekita baina inaktibo dagoela kontsideratzen da.

##### Basic lengoaian

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

##### Python lengoaian

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

Kontuan izan Document zerbitzuari deitzeko, CreateScriptService metodoari "Document" edo "SFDocuments.Document" pasatuta egin daitekeela.

## CloseDocument

Dokumentua ixten du. Dokumentua jadanik itxita badago, berdin dio dokumentua nola itxi zen, metodo honek ez du eraginik eta False itzultzen du.

Erabiltzaileak hura ixtea baztertzen badu ere, metodoak False itzuliko du.

True itzultzen du dokumentua ongi itxi bada.

### Sintaxia:

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

### Parametroak:

saveask: True (balio lehenetsia) bada, erabiltzaileak baieztatu egin beharko du aldaketak diskoan idatziko diren ala ez. Argumentu honi ez ikusiarena egingo zaio dokumentua aldatu ez bada.

### Adibidea:

##### Basic lengoaian

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

##### Python lengoaian

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

## Forms

Erabilitako parametroen arabera, metodo honek honakoa itzuliko du:

- Dokumentuak dituen inprimaki guztien izenez osatutako zero oinarriko matrize bat (edo tupla bat Pythonen), form argumenturik ez badago.

- Argumentu gisa zehaztu den inprimakia ordezkatzen duen SFDocuments.Form zerbitzu-instantzia bat.

Metodo hau Writer dokumentuetan soilik aplikatu daiteke. Calc eta Base dokumentuek beren Forms metodo propioa dute Calc eta Base zerbitzuetan, hurrenez hurren.

### Sintaxia:

svc.Forms(): str[0..*]

svc.Forms(form: str = ''): svc

svc.Forms(form: int): svc

### Parametroak:

form: Dokumentuan gordetako inprimaki baten izena edo indizea. Argumentu hau ez badago, metodoak dokumentuan dauden inprimaki guztien izenak dituen zerrenda bat itzuliko du.

### Adibidea:

Hurrengo adibideetan, lehen lerroak dokumentuko inprimaki guztien izenak eskuratzen ditu eta bigarren lerroak "A_Inp" izeneko inprimakiaren Form objektua atzitzen du.

##### Basic lengoaian

        Set FormNames = oDoc.Forms()
        Set FormA = oDoc.Forms("A_Inp")

##### Python lengoaian

        form_names = doc.Forms()
        form_A = doc.Forms("A_Inp")

## RunCommand

Komando bat exekutatzen du dokumentu batean. Komandoa argumenturik gabe exekutatuko da.

Komando arruntenetako batzuk: Save, SaveAs, ExportToPDF, SetDocumentProperties, Undo, Copy, Paste, etab.

Dokumentuak berak ez du aktibo egon behar komandoak exekutatu ahal izateko.

### Sintaxia:

svc.RunCommand(command: str)

### Parametroak:

command: Maiuskulak/minuskulak bereizten dituen katea, komandoa duena ingelesez. Komandoaren beraren zuzentasuna ez da egiaztatuko. Komandoa deitu ondoren ez bada ezer gertatzen, beharbada gaizki idatzita dago.

### Adibidea:

Hurrengo adibideak "SelectData" komandoa exekutatzen du "MyFile.ods" izeneko Calc orri batean. Komandoaren emaitza izango da datu-area bat hautatuko dela unean hautatutako gelaxkan oinarrituta.

##### Basic lengoaian

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

##### Python lengoaian

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

Goiko adibideak uno:SelectData UNO komandoa exekutatzen du. Hortaz, beharrezkoa da RunCommand metodoa erabiltzea "uno:" azpikatea kentzeko.

LibreOffice osagai bakoitzak komando multzo berezi bat du erabilgarri. Komandoak ikasteko modu erraz bat Tresnak > Pertsonalizlatu > Teklatua atalera joatea da. Funtzioa zerrendako funtzio baten gainetik sagua pasatzean, hari dagokionn UNO komandoa erakusten duen aholku bat agertuko da.

## Save

Dokumentua kargatu zen fitxategi-kokalekuan bertan gordetzen du. Metodoari ez ikusiarena egingo zaio dokumentua aldatu ez bada.

False itzuliko du dokumentua ezin bada gorde. Errore bat sortuko da fitxategia soilik irakurtzeko moduan irekita badago, edo oraindik gorde ez den dokumentu berria bada.

Dokumentuak ez du aktibo egon behar metodo hori exekutatzeko.

### Sintaxia:

svc.Save(): bool

### Adibidea:

##### Basic lengoaian

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

##### Python lengoaian

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

## SaveAs

Dokumentua emandako fitxategi-kokalekuan gordetzen du. Kokaleku berria fitxategi-izen berria bihurtuko da, eta harekin, gordetzeko metodo-dei sinpleak aplikatu ahal izango dira.

False itzuliko du dokumentua ezin bada gorde. Errore bat sortuko da helburua gainidaztea ukatzen bada edo helburuak soilik irakurtzeko atributua ezarrita badu.

Dokumentuak ez du aktibo egon behar metodo hori exekutatzeko.

### Sintaxia:

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

### Parametroak:

filename: Erabiliko den fitxategi-izena duen kate bat. SF_FileSystem.FileNaming notazioa jarraitu behar du.

overwrite: True bada, helburu-fitxategia gainidatzi daiteke (lehenetsia = False).

password (*): Dokumentua babesteko erabiliko den zuriunerik gabeko kate bat.

filtername (*): Dokumentua gordetzeko erabili beharko den iragazki baten izena. Argumentu hau gehitzen bada, iragazkiak existitu behar du.

filteroptions (*): Iragazkiari lotutako aukeren kate bat, aukerakoa.

### Adibidea:

##### Basic lengoaian

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

##### Python lengoaian

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

## SaveCopyAs

Dokumentuaren kopia bat edo haren esportazio bat gordetzen du emandako fitxategi-kokalekuan. Uneko kokalekua ez da aldatuko.

False itzuliko du dokumentua ezin bada gorde. Errore bat sortuko da helburua gainidaztea ukatzen bada edo helburuak soilik irakurtzeko atributua ezarrita badu.

Dokumentuak ez du aktibo egon behar metodo hori exekutatzeko.

### Sintaxia:

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

### Parametroak:

filename: Erabiliko den fitxategi-izena duen kate bat. SF_FileSystem.FileNaming notazioa jarraitu behar du.

overwrite: True bada, helburu-fitxategia gainidatzi daiteke (lehenetsia = False).

password (*): Dokumentua babesteko erabiliko den zuriunerik gabeko kate bat.

filtername (*): Dokumentua gordetzeko erabili beharko den iragazki baten izena. Argumentu hau gehitzen bada, iragazkiak existitu behar du.

filteroptions (*): Iragazkiari lotutako aukeren kate bat, aukerakoa.

### Adibidea:

##### Basic lengoaian

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

##### Python lengoaian

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

Aurrizki gisa azpimarra bat ("_") duten ScriptForge Basic errutina edo identifikatzaile guztiak barneko erabilerarako erreserbatuta daude. Ez daude Basic makroetan erabiltzeko pentsatuta.

Erlazionatutako gaiak

ScriptForge.UI zerbitzua

ScriptForge.Dictionary zerbitzua