| Startseite | Inhalt
StarBasic / OpenOffice.org Basic FAQ
Fragen und Infos: starbasic@dannenhoefer.de

Zurück Vor |
| 6.2.4 Wie kann man Dokumente drucken?
Eine der wichtigsten Aufgaben einer Office-Anwendung ist das Drucken. Schließlich muß im Zeitalter des papierlosen Büros auch alles für die Akten ausgedruckt werden. Jeder Dokumententyp unterstützt den Service com.sun.star.view.XPrintable. Dieser steuert den Ausdruck und die Eigenschaften des Drucks. Die Verwendung ist eigentlich denkbar einfach: myDoc=ThisComponent myDoc.Print(args()) Die Parameter die übergeben werden können sind:
Pages | Die Angabe welche(n) Seite(n) gedruckt werden soll. Fortlaufend durch Bindestrich oder einzelne getrennt durch ein Semikolon. ( z.B.1-4;8;10)
CopyCount | Anzahl der Kopien
Collate | Sortieren der Kopien (True)
Sort | Sortieren der Kopien (True)
Filename | Dateiname, wenn der Ausdruck in eine Datei erfolgen soll Mit der Angabe des Dateinamen erfolgt der Ausdruck automatisch in eine Datei.
sub testdruck Dim printProp(4) as New com.sun.star.beans.PropertyValue printProp(0).Name = "Pages" printProp(0).Value = "1-3" printProp(1).Name = "CopyCount" printProp(1).Value = 3 printProp(2).Name = "Collate" printProp(2).Value = False printProp(3).Name = "Sort" printProp(3).Value = False myDoc=ThisComponent myDoc.Print(printProp()) end sub Leider gibt es bei den Parametern ein Problem: Sie funktionieren nicht alle. Sort und Collate haben keinerlei besondere Auswirkung. Die Sortierung der Kopien erfolgt nicht. Mit Collate wird nur eine Kopie gedruckt, diese sortiert. Mit Sort passiert nichts. (Auch 2.0) Zusätzlich zu den allgemeinen Druckparametern gibt es noch die möglichen Parameter des Druckers. Dies sind in Starbasic acht Parameter. Der Service dazu ist com.sun.star.view.PrinterDescriptor
Name | Name des Druckers |
PaperOrientation | Horizontal oder Vertikal (Hochformat/Querformat) |
| Einstellung über Enum c.s.s.view.PaperOrientation | PORTAIT (Hochformat)
|  | LANDSCAPE (Querformat)
PaperFormat | Papier: A4, A5 etc |
| enum com.sun.star.view.PaperFormat | A3,A4,A5,B4,B5,LETTER
|  | LEGAL, TABLOID
|  | USER
PaperSize | Eigene Papiergröße (PaperFormat=USER) | Angabe in mm
| struct com.sun.awt.size | WIDTH (Breite)
|  | HEIGHT (Höhe)
IsBusy | Stellt fest ob der Drucker frei ist. (true) |
CanSetPaperorientation | Erlaubt der Drucker die Änderung |
CanSetPaperFormat | Erlaubt der Drucker die Änderung |
CanSetPaperSize | Erlaubt der Drucker die Änderung |
Sub DruckerWahl ' Variablen deklarieren Dim oODoc as Object Dim Dummy() Dim printprops(3) as New com.sun.star.beans.PropertyValue ' aktuelles Dokument holen ODoc=ThisComponent ' Definition des Druckers printprops(0).Name = "Name" printprops(0).Value="Acrobat PDFWriter" printprops(1).Name = "PaperFormat" printprops(1).Value = com.sun.star.view.PaperFormat.A4 printprops(2).Name = "PaperOrientation" printprops(2).Value = com.sun.star.view.PaperOrientation.PORTRAIT ' Drucker auswählen oOfficeDokument.setPrinter( drucker() ) End Sub Um die Papiergröße selber einzugeben: printprops(2).Name = "PaperFormat" printprops(2).Value = com.sun.star.view.PaperFormat.USER Dim myPage As New com.sun.star.awt.size myPage.WIDTH=100 myPage.HEIGTH=100 printprops(3).Name = "PaperSize" printprops(3).Value = MyPage |
Seitenanfang |

2003 - 2009 von Michael Dannenhöfer |
Letzte Aktualisierung: 06.04.2009