Seite 1 von 1

[gelöst] Drucken aus Calc per Makro

Verfasst: So, 31.01.2010 17:16
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

Re: Drucken aus Calc per Makro

Verfasst: Mo, 01.02.2010 13:44
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.