Difference between revisions of "NO/Documentation/BASIC Guide/StarDesktop"
(Created page with '{{NO/Documentation/BASICGuideTOC/v2 |ShowPrevNext=block |ShowPrevPage=block |PrevPage=NO/Documentation/BASIC Guide/Documents |NextPage=NO/Documentation/BASIC Guide/Templates |doc…') |
(No difference)
|
Latest revision as of 14:50, 15 December 2009
- Skrivebordet (Star Desktop)
- Maler (template)
Felles funksjoner er samlet i to tjenester.
Den første heter com.sun.star.frame.Desktop og heter på kortform bare "StarDesktop" og
tar seg av åpning av dokument.
Den andre heter com.sun.star.document.OfficeDocument og ordner lagring, utskrift og
konvertering.
Det dokument man arbeider med har navnet StarDesktop.CurrentComponent er det dokument man arbeider med. Det globale ThisComponent er identisk (en snarvei).
Dokumenter åpnes ved å oppgi en URL (Universal Resource Locator, definert i RFC1738). URL til et webdokument starter med det velkjente "http://" mens lokale filer har URL som f.eks. "file:///c/Windows/glupeord.txt". Konvertering mellom filnavn og URLer gjøres med ConvertToURL(n) og ConvertFromURL(u), som:
MsgBox ConvertToUrl("C:\doc\test.odt") ' viser file:///C:/doc/test.odt MsgBox ConvertFromUrl("file:///C:/doc/test.odt") ' viser i Windows: c:\doc\test.odt
XML filformat
Apache OpenOffice lagrer dokument som XML (et format), og i ZIP-komprimert og pakket form, da disse blir ganske store. Dokument åpnes so:
StarDesktop.loadComponentFromURL(URL, Frame, SearchFlags, FileProperties)
der "URL" angir dokumentets navn, "Frame" angir hvilket vindu som skal brukes ("_blank" gir nytt, men en kan jo ønske å bruke et vindu man allerede har), "SearchFlags" brukes i tilfelle leting er nødvendig og "FileProperties" er en tabell med filegenskaper. En enkel åpning er å ignorere de to siste parametrene:
Dim Doc As Object Dim Url As String Dim Dummy() ' tom tabell Url = "file:///C:/gode_ord.odt" Doc = StarDesktop.loadComponentFromURL(URL, "_blank", 0, Dummy)
Vil en derimot bruke eksisterende vindu "MyFrame" og angi spesielle leteflagg kan en vel:
Dim Doc As Object Dim Dummy() Dim Url As String Dim SearchFlags As Long SearchFlags = com.sun.star.frame.FrameSearchFlag.CREATE + _ com.sun.star.frame.FrameSearchFlag.ALL Url = "file:///C:/test.odt" Doc = StarDesktop.loadComponentFromURL(Url, "MyFrame", SearchFlags, Dummy)
Det fjerde parameter har varierte muligheter som ikke beskrives her.
Hvis URL angir en malfil åpnes et nytt dokument som baserer seg på den malen. Vil en ha et dokument uten slik tilpassning brukes et private:factory som URL:
Dim Dummy() Dim Url As String Dim Doc As Object Url = "private:factory/swriter" Doc = StarDesktop.loadComponentFromURL(Url, "_blank", 0, Dummy())
Dette vil åpne et tomt tekstdokument.
Lagring av dokument
Lagring skjer med d.store() eller d.storeAsURL():
Dim URL As String Dim Dummy() Url = "file:///C:/test3.odt" Doc.storeAsURL(URL, Dummy())
Andre metoder er hasLocation() for å avgjøre om dokumentet har en URL, isReadOnly() og isModified() som gir boolsk metainfo om tilstanden til dokumentet:
If (Doc.isModified) Then If (Doc.hasLocation And (Not Doc.isReadOnly)) Then Doc.store() Else Doc.storeAsURL(URL, Dummy()) End If End If
En ser at en kun lagrer hvis dokumentet er endret.
Detaljer om lagringen er en tabell der man legger CharacterSet (streng som angir tegnsett), Filtername (streng), FilterData (streng), FilterOptions (streng), Overwrite (boolsk, False hvis en ikke skal overskrive), Password (streng som angir passord som skal benyttes ved senere gjenåpning). Flere fins. Et eksempel er:
Dim Doc As Object Dim FileProperties(0) As New com.sun.star.beans.PropertyValue Dim Url As String ... Url = "file:///c:/test3.odt" FileProperties(0).Name = "Overwrite" FileProperties(0).Value = True Doc.storeAsURL(Url, FileProperties())
En ser at overskrift tillates!
Oppsett av utskrift
Utskrift skjer med d.print (props) der props er en tabell som gir detaljer om utskriften: CopyCount (heltall) er antallet kopier, FileName (streng) legger utskriften til fil istedet for skriver, Collate (boolsk) ber skriveren kollatere sidene, Sort (boolsk) ber skriveren sortere kopiene, Pages (streng) angir hvilke sider som skal skrives ut, Wait (boolsk) er True hvis en skal vente til utskriften er over. Et eksempel:
Dim Doc As Object Dim PrintProperties(1) As New com.sun.star.beans.PropertyValue PrintProperties(0).Name="Pages" PrintProperties(0).Value="1-3; 7; 9" PrintProperties(1).Name="Wait" PrintProperties(1).Value=True Doc.print(PrintProperties())
Skriveroppsett
Vil en si litt om skriveren i seg selv (og ikke utskriften) gjøres det tilsvarende, i en tabell der man angir Name (en streng med skriverens navn), PaperOrientation (f.eks. com.sun.star.view.PaperOrientation.PORTRAIT), PaperFormat (f.eks. com.sun.star.view.PaperFormat.A4), PaperSize (en "Size", d.v.s. i 1/100 mm). Et eksempel:
Dim Doc As Object Dim PrinterProperties(1) As New com.sun.star.beans.PropertyValue Dim PaperSize As New com.sun.star.awt.Size PaperSize.Width = 20000 ' corresponds to 20 cm PaperSize.Height = 20000 ' corresponds to 20 cm PrinterProperties (0).Name="Name" PrinterProperties (0).Value="My HP Laserjet" PrinterProperties (1).Name="PaperSize" PrinterProperties (1).Value=PaperSize Doc.Printer = PrinterProperties()
Content on this page is licensed under the Public Documentation License (PDL). |