Calc: Drucken des aktuellen Tabellenblattes

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: Calc: Drucken des aktuellen Tabellenblattes

Re: Calc: Drucken des aktuellen Tabellenblattes

von Woatze » Di, 23.08.2011 12:15

Hallo Tomgom!
Danke für deinen Hinweis. Meine Lösung jetzt für mein angesprochenes Problem:

Code: Alles auswählen

Sub DruckLandscape
    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.currentSelection.getSpreadsheet() 
    oDrBereich = oSheet.getCellRangeByName("A2:AR63").rangeAddress
    oDruckbereiche(0) = oDrBereich
    oSheet.setPrintAreas(oDruckbereiche())
    PrinterProperties(0).name="PaperOrientation"
    PrinterProperties(0).value=com.sun.star.view.PaperOrientation.LANDSCAPE
    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
Vielen Dank und viele Grüße
Woatze

Re: Calc: Drucken des aktuellen Tabellenblattes

von tomgom » Mo, 22.08.2011 16:54

Hallo Woatze,

schau Dir mal meine Anfrage "Drucken im Landsacpeformat" an.

Du mußt beim Formatwechsel nicht nur "....isLandscape" = True setzen, sondern auch die Länge und Breite entsprechend tauschen.

Re: Calc: Drucken des aktuellen Tabellenblattes

von Woatze » Mo, 22.08.2011 16:25

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

Re: Calc: Drucken des aktuellen Tabellenblattes

von F3K Total » Do, 18.08.2011 21:00

Hallo Woatze,
sind wir hier bei "wünsch Dir was"? Nur mir der Google-Suche "makro +druckbereich site:de.openoffice.info" finde ich 374 Ergebnisse. Ein bisschen Eigeninitiative, und schon findest Du was Du suchst hier im Forum.

Gruß R

Calc: Drucken des aktuellen Tabellenblattes

von Woatze » Do, 18.08.2011 16:04

Hallo!
Ich hätte gerne ein Makro, das mir im aktuellen Tabellenblatt
  • den Druckbereich festlegt (z.B. A2:K51)
    Seitenformat auf A4 Hochformat einstellt
    horizontal und vertikal den Ausdruck zentriert
    Rand links auf 1,5cm, rechts 1,0cm und oben und unten 2cm einstellt.
Wie geht das? Kann man da irgendwann zwischen den installierten Druckern auswählen oder muss/kann man das vorher festlegen?

Danke,
Woatze

Nach oben