[gelöst] Drucken aus Calc per Makro

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

rambrand
**
Beiträge: 21
Registriert: Di, 27.05.2008 11:44

[gelöst] Drucken aus Calc per Makro

Beitrag von rambrand »

Hallo,

ich hab eine 1-2-3 Tabelle geerbt, bei der bestimmte Bereiche per Tastaturkombination gedruckt wurden.
Das Sheet hab ich jetzt nach OOo 3.1.1 Calc übernommen und bin dabei diese Druckfunktion nachzubilden.
Mit Makros bin ich noch nicht so bewandert und habe mir jetzt aus Literatur und I-Net folgenden Makro gebastelt.

Code: Alles auswählen

Sub Main

Dim oDoc as Object, oSheet as Object
Dim oDrBereich as Object, oDrB as Object, s as String
Dim oDruckbereiche(0)
Dim arg(2) as new com.sun.star.beans.PropertyValue
oDoc = ThisComponent
oSheet = ODoc.sheets(2)
oDrBereich = oSheet.getCellRangeByName("A1:H98").rangeAddress
oDruckbereiche(0) = oDrBereich
oSheet.setPrintAreas(oDruckbereiche())
arg(0).name="PaperOrientation"
arg(0).value=PORTRAIT
arg(1).name="PaperFormat"
arg(1).value=A4
arg(2).name="Wait"
arg(2).value=True
ThisComponent.print(arg())

End Sub
Damit druckt er auch den gewünschten Bereich aus. Aber in der Seitenansicht ist im Seitenformat Landscape eingestellt. Trotz meiner Umstellung auf Portrait im Makro nimmt er die Einstellung des Seitenformates. Ich kann aber nicht gewährleisten, dass die Anwender später das Seitenformat auch immer schön im Hochformat belassen, da bei einem normalen Druck quer einfach besser ist.

Kann mir da jemand einen - hoffentlich entscheidenen - Tipp geben?

Danke im voraus,

Markus
Zuletzt geändert von rambrand am Di, 23.02.2010 13:58, insgesamt 1-mal geändert.
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Drucken aus Calc per Makro

Beitrag von DPunch »

Aloha

Kommando zurück. Versuchs mal so:

Code: Alles auswählen

Sub Main

Dim oDoc as Object, oSheet as Object
Dim oDrBereich as Object, oDrB as Object, s as String
Dim oDruckbereiche(0)
Dim arg(0) as new com.sun.star.beans.PropertyValue
Dim PrinterProperties(1) as new com.sun.star.beans.PropertyValue
oDoc = ThisComponent
oSheet = ODoc.sheets(2)
oDrBereich = oSheet.getCellRangeByName("A1:H98").rangeAddress
oDruckbereiche(0) = oDrBereich
oSheet.setPrintAreas(oDruckbereiche())
PrinterProperties(0).name="PaperOrientation"
PrinterProperties(0).value=com.sun.star.view.PaperOrientation.PORTRAIT
PrinterProperties(1).name="PaperFormat"
PrinterProperties(1).value=com.sun.star.view.PaperFormat.A4
arg(0).name="Wait"
arg(0).value=True
oDoc.Printer = PrinterProperties()
ThisComponent.print(arg())

End Sub
http://wiki.services.openoffice.org/wik ... tarDesktop

Die Print-Methode bzw. deren Parameter und die Einstellungen für den Printer sind zwei Paar Schuhe.
Antworten