|
A példaprogram először ellenőrzi, hogy az adott dokumentum módosult-e az utolsó mentése óta. Csak akkor folytatja a mentési folyamatot, ha ez igaz. Ha a dokumentumhoz már hozzá van rendelve egy URL, és a dokumentum nem írásvédett, akkor a program menti a meglévő URL-lel. Ha nem rendelkezik URL-lel, vagy csak olvashatóként van megnyitva, akkor a program egy új URL-lel menti.
A storeAsURL metódus lehetőségei
Ahogy a loadComponentFromURL metódusnál is, úgy a storeAsURL metódus használatánál is megadható néhány lehetőség egy PropertyValue adatmező formájában. Ezek meghatározzák a StarOffice által használt dokumentummentési folyamatot. A storeAsURL metódus a következő lehetőségekkel rendelkezik:
CharacterSet (karakterlánc) - megadja, milyen karakterkészleten alapul a dokumentum.
FilterName (karakterlánc) - megad egy speciális szűrőt a loadComponentFromURL függvény számára. Az elérhető szűrőnevek a \share\config\registry\instance\org\openoffice\office\TypeDetection.xml fájlban vannak definiálva.
FilterOptions (karakterlánc) - további lehetőségeket definiált a szűrők számára.
Overwrite (logikai érték) - lehetővé teszi, hogy a program rákérdezés nélkül felülírjon egy létező fájlt.
Password (karakterlánc) - átadja a jelszót egy védett fájlnak.
Unpacked (logikai érték) - alkönyvtárakba menti a dokumentumot (tömörítés nélkül).
A következő példa bemutatja, hogyan használható az Overwrite lehetőség a storeAsURL metódussal együtt:
Dim Doc As Object
Dim FileProperties(0) As New com.sun.star.beans.PropertyValue
Dim Url As String
' ... a dokumentum inicializálása
Url = "file:///c:/test3.sxw"
FileProperties(0).Name = "Overwrite"
FileProperties(0).Value = True
Doc.storeAsURL(sUrl, mFileProperties())
|
Ezután a példaprogram menti a Doc objektumot a megadott fájlnévvel, ha már létezik ilyen nevű fájl.
Dokumentumok nyomtatása
A mentéshez hasonlóan a dokumentumokat közvetlenül a dokumentumobjektummal lehet kinyomtatni. A com.sun.star.view.Xprintable felület Print metódusa használható erre a célra: A legegyszerűbb formájában a nyomtatás így néz ki:
Dim Dummy()
Doc.print(Dummy())
|
Ahogy a loadComponentFromURL metódus esetében is, úgy itt is a Dummy paraméter egy PropertyValue adatmező, amelyen keresztül a StarOffice számos lehetőséget meg tud adni a nyomtatáshoz.
A print metódus lehetőségei
A print metódus egy PropertyValue adatmezőt vár paraméterként, amely a StarOffice Nyomtatás párbeszédablakának beállításait tartalmazza:
CopyCount (egész szám) - a kinyomtatandó példányok számát adja meg.
FileName (karakterlánc) - a megadott fájlba nyomtatja a dokumentumot.
Collate (logikai érték) - arra utasítja a nyomtatót, hogy válogassa szét a kinyomtatott példányok lapjait.
Sort (logikai érték) - rendezi a példányokat több példány nyomtatásánál (CopyCount > 1).
Pages (karakterlánc) - a kinyomtatandó oldalak listáját tartalmazza (a szintaxis a Nyomtatás párbeszédablakéval azonos).
A következő példa bemutatja, hogyan nyomtatható ki több oldal a Pages lehetőséggel:
Dim Doc As Object
Dim PrintProperties(0) As New com.sun.star.beans.PropertyValue
PrintProperties(0).Name="Pages"
PrintProperties(0).Value="1-3; 7; 9"
Doc.print(PrintProperties())
|
Nyomtatókiválasztás és -beállítások
A com.sun.star.view.XPrintable felület biztosítja a Printer tulajdonságot, amely kijelöli a nyomtatót. Ez a tulajdonság egy PropertyValue adatmezőt kap a következő beállításokkal:
Name (karakterlánc) - megadja a nyomtató nevét.
PaperOrientation (enumeráció) - megadja a papír tájolását (a com.sun.star.view.PaperOrientation.PORTRAIT érték jelenti az álló tájolást, a com.sun.star.view.PaperOrientation.LANDSCAPE pedig a fekvőt).
PaperFormat (enumeráció) - megadja a papír formátumát (például a com.sun.star.view.PaperFormat.A4 a DIN A4 méretű papírt jelenti, a com.sun.star.view.PaperFormat.Letter pedig az amerikai Letter szabványút).
PaperSize (méret) - megadja a papír méretét századmilliméterben.
A következő példa bemutatja, hogyan módosítható a nyomtató, és hogyan állítható be a papírméret a Printer tulajdonsággal.
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 ' 20 cm
PaperSize.Height = 20000 ' 20 cm
PrinterProperties (0).Name="Name"
PrinterProperties (0).Value="Irodai HP Laserjet"
PrinterProperties (1).Name="PaperSize"
PrinterProperties (1).Value=PaperSize
Doc.Printer = PrinterProperties()
|
|