[gelöst] Drucken aus Calc per Makro

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [gelöst] Drucken aus Calc per Makro

Re: Drucken aus Calc per Makro

von DPunch » Mo, 01.02.2010 13:44

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.

[gelöst] Drucken aus Calc per Makro

von rambrand » So, 31.01.2010 17:16

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

Nach oben