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:

warning

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

Before using the Document service the ScriptForge library needs to be loaded or imported:

note

• Basic makroak erabiltzkeo, ScriptForge liburutegia kargatu behar da honako instrukzioa erabiliz:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Python scriptak erabiltzeko, berriz, scriptforge modulu baten inportazioa behar dute:
from scriptforge import CreateScriptService


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
  
note

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)
        # (...)
  
tip

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 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
CreateMenu
ExportAsPDF

PrintOut
RemoveMenu
RunCommand
Save

SaveAs
SaveCopyAs
SetPrinter


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

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):
        # ...
  

CreateMenu

Creates a new menu entry in the menubar of a given document window.

This method returns an instance of the SFWidgets.Menu service.

note

The menu created is only available during the current LibreOfficeDev session and is not saved neither in the document nor in the global application settings. Hence closing the document window will make the menu disappear. It will only reappear when the macro that creates the menu is executed again.


Sintaxia:

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

Parametroak:

menuheader: The toplevel name of the new menu.

before: The name (as a string) or position (as an integer starting at 1) of an existing menu before which the new menu will be placed. If no value is defined for this argument, the menu will be created at the last position in the menubar.

submenuchar: The delimiter used to create menu trees when calling methods as AddItem from the Menu service. The default value is ">".

Adibidea:

Basic lengoaian

    Dim oDoc as Object, oMenu as Object
    Set oDoc = CreateScriptService("Document")
    Set oMenu = oDoc.CreateMenu("My Menu")
    With oMenu
        ' Add items to the menu
        .AddItem("Item A")
        .AddItem("Item B")
        ' ...
        ' After creating the menu, the service instance can be disposed of
        .Dispose()
    End With
  
Python lengoaian

    doc = CreateScriptService("Document")
    menu = doc.CreateMenu("Nire menua")
    menu.AddItem("Item A")
    menu.AddItem("Item B")
    # ...
    menu.Dispose()
  
tip

Refer to the SFWidgets.Menu help page to learn more about how to create/remove menus in LibreOfficeDev document windows.


ExportAsPDF

Dokumentua zuzenean PDF modura esportatzen du zehaztutako kokalekura. True itzultzen du PDF fitxategia ongi sortzen bada.

Esportazioaren aukerak eskuz ezarri daitezke Fitxategia - Esportatu honela - Esportatu PDF gisa elkarrizketa-koadroan edo Session zerbitzuaren GetPDFExportOptions eta SetPDFExportOptions erabili daitezke ezarpenak zehazteko.

Sintaxia:

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

Parametroak:

filename: Sortuko den PDFaren bide-izen osoa eta fitxategi-izena. SF_FileSystem.FileNaming notazioa jarraitu behar da.

overwrite: Helburuko fitxategia gainidatzi daitekeen ala ez zehazten du (Balio lehenetsia = False). Errore bat gertatuko da overwrite parametroan False ezartzen bada eta helburuko fitxategia lehendik badago.

pages: Esportatuko diren orrialdeak zehazten dituen katea. Argumentu honek Fitxategia - Esportatu honela - Esportatu PDF gisa elkarrizketa-koadroan erabilitako notazio bera darabil.

password: PDF fitxategia irekitzeko pasahitz bat zehazten du.

watermark: PDF fitxategian ur-marka modura erabiliko den testua. Emaitza gisa sortuko den PDFaren orrialde guztietan marraztuko da.

Adibidea:

Basic lengoaian

Hurrengo adibidean, uneko dokumentua PDF fitxategi gisa esportatzen da, pasahitz bat definitzen da eta helburuko fitxategia gainidazten da, horrelakorik lehendik badago.


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

Beheko kode-zatiak PDFen uneko esportazio-aukerak hartzen ditu eta PDF fitxategia sortzeko erabiltzen ditu.


    Dim exportSettings as Object, oSession as Object
    oSession = CreateScriptService("Session")
    exportSettings = oSession.GetPDFExportOptions()
    ' Iruzkinak PDF ohar modura esportatzeko aukeran True (egia) ezartzen du
    exportSettings.ReplaceItem("ExportNotes", True)
    oSession.SetPDFExportOptions(exportSettings)
    oDoc.ExportAsPDF("C:\User\Documents\myFile.pdf")
  
Python lengoaian

    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

Metodo honen bidez, dokumentuaren edukia inprimagailu lehenetsira edo SetPrinter() metodoak definitutako inprimagailura bidaltzen da.

True itzultzen du dokumentua ongi inprimatu bada.

Sintaxia:

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

Parametroak:

pages: Inprimatuko diren orrialdeak, kate gisa, erabiltzaile-interfazean bezala. Adibidea: "1-4;10;15-18". Balio lehenetsia orrialde guztiak dira.

copies: Kopia kopurua. Balio lehenetsia 1 da.

Adibidea:

Basic lengoaian

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

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

RemoveMenu

Removes a toplevel menu from the menubar of a given document window.

Returns True if the specified menu could be removed. If the specified menu does not exist, the method returns False.

note

This method can be used to remove any menu entry from the document window, including default menus. However, none of these changes in the menubar are saved to the document or to the application settings. To restore the menubar to the default settings, simply close and reopen the document window.


Sintaxia:

svc.RemoveMenu(menuheader: str): bool

Parametroak:

menuheader: The toplevel name of the menu to be removed.

Adibidea:

Basic lengoaian

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

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

Refer to the SFWidgets.Menu help page to learn more about how to create/remove menus in LibreOfficeDev document windows.


RunCommand

Runs a UNO command on the document window associated with the service instance. A few typical commands are: Save, SaveAs, ExportToPDF, Undo, Copy, Paste, etc.

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

Commands can be run with or without arguments. Arguments are not validated before running the command. If the command or its arguments are invalid, then nothing will happen.

tip

For a complete list of UNO commands that can be run in LibreOfficeDev, refer to the Wiki page Development/DispatchCommands.


Sintaxia:

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

Parametroak:

command: Case-sensitive string containing the UNO command name. The inclusion of the prefix ".uno:" in the command is optional. The command itself is not checked for correctness. If nothing happens after the command call, then the command is probably wrong.

args: For each argument to be passed to the command, specify a pair containing the argument name and value.

Adibidea:

Basic lengoaian

The following example runs the SelectData command in a Calc file named "MyFile.ods", which will result in the selection of the data area based on the currently selected cell. Note that this command does not require any arguments.


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

Below is an example that runs the UNO command ReplaceAll and passes values for its arguments SearchString and ReplaceString. Running this command will replace all occurrence of the string "abc" by "ABC" in the current sheet.


    ' Arguments passed to the command:
    ' SearchString  = "abc"
    ' ReplaceString = "ABC"
    oDoc.RunCommand(".uno:ReplaceAll", "SearchString", "abc", "ReplaceString", "ABC")
  

Note that calling the command ReplaceAll without arguments will open the Find and Replace dialog.

Python lengoaian

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

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

In Python it is also possible to call RunCommand using keyword arguments:


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

Each LibreOfficeDev component has its own set of commands available. One easy way to learn commands is going to Tools - Customize - Keyboard. When you position your mouse over a function in the Function list, a tooltip will appear with the corresponding UNO command.


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)
  

SetPrinter

Dokumentuaren inprimatze-aukerak definitzen ditu.

True itzultzen du arrakasta duenean.

Sintaxia:

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

Parametroak:

printer: Inprimatzeko erabiliko den inprimagailu-ilararen izena. Ez badago, inprimagailu lehenetsia ezarriko da.

orientation: PORTRAIT edo LANDSCAPE. Ez badago, inprimagailu-ezarpenetan ezarritakoa erabiliko da aldatu gabe.

paperformat: Paper-formatua zehazten du, kate gisa, eta A3, A4, A5, LETTER, LEGAL edo TABLOID balioa izan dezake. Parametro hau ez badago, ezarpena ez da aldatuko.

Adibidea:

Basic lengoaian

    oDoc.SetPrinter(Orientation := "PORTRAIT")
  
Python lengoaian

    doc.SetPrinter(paperformat='TABLOID')
  
warning

Azpimarraren karaktere bat, "_", aurrizki gisa duten ScriptForge Basic errutina edo identifikatzaile guztiak barneko erabilerarako erreserbatuta daude. Ez dira Basic makroetan edo Python scriptetan erabili behar.