momentan arbeiten wir auf der Arbeit noch mit MS Office und wollen nun versuchen auf OO3 umzutellen.
Aus MS Access(2003) will ich ein Open Office Text Dokument drucken. Bis jetzt habe ich es geschafft ein Dokument zu drucken und auch verschiedene Drucker anzusprechen. Ich würde nun gern auch den Papierschacht des Druckers auswählen können, bis jetzt ist mir das nicht gelungen. Ich habe schon zig Beiträge in Netz durchgelesen und auch das Programmierhandbuch für Basic(StarOffice 8 ) und die tutorial pdf dazu. Das Problem ist eben das MS access ja in vb und OO in Starbasic geschrieben wird, daher habe ich Probleme den Code anzupassen bzw umzuschreiben sodass er funktionnieren würde. bis jetzt habe ich folgendes um eine open office doc-vorlage(.ott) zu öffnen, zu füllen und zum drucker zu schicken :
Code: Alles auswählen
Dim objServiceManager As Object
Dim objDesktop, odoc As Object
Dim args() ' Eigenschaften für Öffnen der Vorlage
Dim arg1(2) As Object ' Druck - Eigenschaften
Dim sUrl As String ' Speicherpfad PDF
Dim myProps(0) ' Eigenschaften zur PDF Erstellung
Dim mPrinter(0) As Object ' Drucker - Eingenschaften
Set objServiceManager = CreateObject("com.sun.star.ServiceManager")
Set objDesktop = objServiceManager.createInstance("com.sun.star.frame.Desktop")
Set odoc = objDesktop.loadComponentFromURL(Pfad, "_blank", 0, args())
' Vorlage füllen
objDesktop.CurrentComponent.getBookmarks().getByName("Empfänger").getAnchor.setString (strData)
.... usw. die Vorlage füllen
'Drucker für das Doc wird ausgewählt
Set mPrinter(0) = MakePropertyValue("Name", "Drucker Progger")
' Eigenschaften für das Dokument setzen
odoc.Printer = mPrinter()
'**************DRUCK EIGENSCHAFTEN*******************
Set arg1(0) = MakePropertyValue("Sort", True)
Set arg1(1) = MakePropertyValue("Collate", True)
'Dokuemnt drucken
CallByName odoc, "print", VbMethod, arg1 'arg is an array of arguments (cf MakePropertyValue)
Set odoc = Nothing
Code: Alles auswählen
Dim Doc As Object
Dim Sheet As Object
Dim StyleFamilies As Object
Dim PageStyles As Object
Dim DefPage As Object
Doc = StarDesktop.CurrentComponent
StyleFamilies = Doc.StyleFamilies
PageStyles = StyleFamilies.getByName("PageStyles")
DefPage = PageStyles.getByName("Default")
DefPage.IsLandscape = True
DefPage.Width = 21000
DefPage.Height
Im handbuch auf S.140 steht das man die Eigenschaft "PrinterPaperTray" wohl auch auf diese Weise verwenden kann ich nehme mal an
Code: Alles auswählen
...s.o.
DefPage.PrinterPaperTray = "Schacht 2"
Kann mir das jemand helfen, oder ein paar tipps dazu geben?
Vielen dank
Gruß
Patrice
ich verwende OO 3.0.1 auf MS XP SP2