Innhald

# Tenesta SFDocuments.Writer

Det delte biblioteket SFDocuments gjev mange metodar og eigenskapar som letter administrasjon og handsaming av LibreOffice-dokument.

Nokre metodar gjeld for alle typar dokument og er nedarva frå modulen SF_Document, medan andre metodar som er spesifikke for Writer er definerte i modulen SF_Writer.

## Oppkall av tenester

Før du brukar Writer-tenesta, må ScriptForge-biblioteket lastast inn eller importerast:

• Grunnleggjande makroar krev innlasting av biblioteket ScriptForge ved hjelp av denne setninga:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python-skript krev import frå scriptforge-modulen:
from scriptforge import CreateScriptService

Tenesta Writer er i nær slekt med tenesta UI i biblioteket ScriptForge. Du finn nokre få eksempel nedanfor på korleis tenesta Writer kan kallast opp.

##### I Basic

Kodesnutten nedanfor lagar eit eksemplar av tenesta Writer som svarar til det gjeldande Writer-dokumentet.

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

Ein annan måte å laga eit eksemplar av tenesta Writer på, er å bruka tenesta UI. I det neste eksempelet vert det laga eit nytt Wtiter-dokument der oDoc er eit eksemplar av tenesta Writer:

        Dim ui As Object, oDoc As Object
        Set ui = CreateScriptService("UI")
        Set oDoc = ui.CreateDocument("Writer")

Eller med metoden OpenDocument frå tenesta UI:

        Set oDoc = ui.OpenDocument("C:\Me\MyFile.odt")

Det er også mogleg å starta tenesta Writer med metoden CreateScriptService:

        Dim oDoc As Object
        Set oDoc = CreateScriptService("SFDocuments.Writer", "MyFile.odt")

I eksempelet ovanfor er "MyFil.ods" namnet på eit opna dokumentvindauge. Viss dette argumentet ikkje er gjeve, vert det aktive vindauget vurdert brukt.

Det vert tilrådd å frigjeva ressursar etter bruk:

        Set oDoc = oDoc.Dispose()

Viss dokumentet vart lukka ved hjelp av metoden CloseDocument, er det ikkje nødvendig å frigjera ressursar med kommandoen nemnd ovanfor.

##### I Python

        myDoc = CreateScriptService("Writer") ' Default = ActiveWindow

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

        myDoc = ui.OpenDocument(r"C:\Documents\MyFile.odt")

        myDoc = CreateScriptService("SFDocuments.Writer", "MyFile.odt")
        myDoc.Dispose()

Bruk av prefikset «SFDocuments.» ved oppkall av tenesta er frivillig.

## Definisjonar

## Eigenskapar

## Metodar

Liste over metodar i tenesta Writer
Forms | ImportStylesFromFile | PrintOut

## Forms

Avhengig av kva parametrar som er gjevne, vil denne metoden returnera:

- Ei null-basert matrise (eller tuple i Python) med namna på alle skjemaa i dokumentet (viss argumentet form manglar)

- Eit eksemplar av tenesta SFDocuments.Form representerer skjemaet, spesifisert som eit argument.

Denne metoden gjeld berre for Writer-dokument. Calc- og Base-dokument har sin eigen Form-metode i tenestene Calc og Base.

### Syntaks:

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

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

svc.Forms(form: int): svc

### Parametrar:

form: Namnet eller indeksen som svarar til eit skjema lagra i dokumentet. Viss dette argument manglar, vil metoden returnera ei liste med namna på alle skjemaa som er tilgjengelege i arket.

### Eksempel:

I dei neste eksempla får den første linja namna på alle skjemaa som er lagra i dokumentet og den anden linje hentar objektet Form frå skjemaet med namnet «Form_A».

##### I Basic

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

##### I Python

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

## ImportStylesFromFile

Denne metden lastar inn alle stilane dom høyrer til ein eller fleire stilfamiliar frå ei lukka fil inn i det gjeldande dokumentet. Det gjeldande dokumentet må vera Calc eller Writer.

Vert alltid importerte saman:

- ParagraphStyles og CharacterStyles

- NumberingStyles og ListStyles

Returnerer Sann viss stilane vart importerte utan feil.

### Syntaks:

svc.ImportStylesFromFile(filename: str, families: str[1..*], overwrite = False): bool

### Parametrar:

filename: Fila som stilane skal lastast inn frå i FileSystem-notasjon. Det vert gått ut frå at fila er av same dokumenttype som det aktuelle dokumentet.

families: Ein av filfamiliane som finst i det aktuelle dokumentet, som ein streng som skil mellom store og små bokstavar eller ei matrise med slike strengar. Hald dette argentet blankt for å importera alle familiar.

overwrite: Viss Sann kan den aktuelle fila overskrivast (standard = Usann).

### Eksempel:

##### I Basic

        oDoc.ImportStylesFromFile("C:\User\Documents\myFile.ods", "ParagraphStyles", True)

##### I Python

        doc.ImportStylesFromFile('C:\User\Documents\myFile.ods', ("ParagraphStyles",), False)

## PrintOut

Sender innhaldet i dokumentet til skrivaren. Skrivaren kan vera definert som standard av brukaren, eller via metoden SetPrinter for tenesta Document. Returnerer Sann når han lukkast.

### Syntaks:

svc.PrintOut(opt pages: str = "", opt copies: num = 1, opt printbackground: bool = True, opt printblankpages: bool = False, opt printevenpages: bool = True, opt printoddpages: bool = True, opt printimages: bool = True): bool

### Parametrar:

pages: Sidene som skal skrivast ut som ein streng, som i brukargrensesnittet. Eksempel: «1-4;10;15-18». Standard = alle sidene.

copies: Talet på kopiar. Standard er 1.

printbackground: Skriv ut bakgrunnen når Sann (standard).

printblankpages: Når Usann (standard), vert tomme sider ikkje skrivne ut.

printevenpages: Skriv ut partalssider når Sann (standard).

printoddpages: Skriv ut oddetalssider når Sann (standard).

printimages: Skriv ut bilete når Sann (standard).

### Eksempel:

##### I Basic

          oDoc.PrintOut("1-4;10;15-18", Copies := 2, PrintImages := False)

##### I Python

        doc.PrintOut(printblankpages = True, copies = 3)

Alle ScriptForge Basic-rutinane og -identifikatorane som vert innleidde med understrek «_» er reserverte for internt bruk. Dei er ikkje meint brukte i Basic-makroar.

Liknande emne

Tenesta SFDocuments.Document

Tenesta ScriptForge.UI

Støtt oss!