Hallo R!
Tut mir leid, ist wohl etwas falsch rübergekommen. Natürlich hast du recht und wir sind nicht bei wünsch dir was. Ich hatte ja auch schon nachfolgenden Code, nur macht der eben nicht, was ich gerne hätte.
Code: Alles auswählen
sub Drucken_Aktuell
oCalc = thiscomponent
oSheet = oCalc.currentSelection.getSpreadsheet()
oZellRange = oSheet.getCellRangeByName("$A$2:$K$52")
oCursor = oSheet.createCursorByRange(oZellRange)
oAdress = oCursor.RangeAddress
Dim aDruckbereich(0)
aDruckbereich(0) = oAdress
oSheet.setPrintAreas(aDruckbereich())
Dim PrintProperties(1) As New com.sun.star.beans.PropertyValue
PrintProperties(0).Name = "Copies"
PrintProperties(0).Value = 1
PrintProperties(1).Value = com.sun.star.view.PaperOrientation.PORTRAIT
PrintProperties(1).Value = com.sun.star.view.PaperFormat.A4
oCalc.Print(PrintProperties())
end sub
Zwar funktioniert der Ausdruck des aktuellen Blattes, aber wenn ich das ganze dann bei einem anderen Blatt verwende (natürlich zweites Makro abgewandelt auf anderen Druckbereich und PaperOrientation auf LANDSCAPE) wird es trotzdem Hochformat ausgedruckt.
Auch wenn ich zuvor im festgelegten Drucker die Ausrichtung ändere, interessiert des OpenOffice nicht die Bohne, es wird trotzdem Hochformat gedruckt. Deshalb würde ich gerne festlegen können, welche Orientierung der Ausdruck hat und wenn möglich auch den Rand an den Seiten (wenn das überhaupt geht).
Also irgendwie hab ich da den Hund drin und komm nicht drauf was los ist. Deshalb meine Frage, ob ich da erst etwas festlegen kann/muss, auf welchen Drucker gedruckt wird.
Was ich mittlerweile gefunden hab:
Code: Alles auswählen
GlobalScope.BasicLibraries.LoadLibrary("Tools")
DispatchSlot(5504)
Das gefällt mir an sich schon ganz gut, dass man hier eine Druckerauswahl hat. Problem ist allerdings, dass ich zuvor schon auf jedem Tabellenblatt den Bereich festlegen muss. Wäre es im Makro, wär das einfacher, da es auf jedem Tabellenblatt der gleiche Bereich ist (Vorteil auch bei späteren Änderungen).
Problem über diese Methode ist dann auch immer noch der Ausdruck in Querformat für ein Tabellenblatt, das nicht so ausschaut wie die anderen. Bei dem wird dann auch Hochformat gedruckt - mit entsprechend kleiner Schrift.
Viele Grüße
Woatze