Seite 1 von 1

Makro zum drucken

Verfasst: Di 5. Apr 2011, 14:15
von kierspe
Hallo,

ich möchte gerne ein Makro zum drucken erstellen. Die Aufnahme hat eigentlich funktioniert. Allerdings passiert nichts, wenn ich das Makro ausführe.

Im LibreOffice Basic Editor wird folgendes angezeigt:

sub druck2
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:Print", "", 0, Array())


end sub

Was mache ich falsch?

Re: Makro zum drucken

Verfasst: Di 5. Apr 2011, 17:29
von gogo

Code: Alles auswählen

rem dispatcher.executeDispatch(document, ".uno:Print", "", 0, Array())
nimm mal das "rem" raus ;)

Code: Alles auswählen

dispatcher.executeDispatch(document, ".uno:Print", "", 0, Array())
... Aufgezeichnete Makros werden in der Regel mit Auskommentierung die Ausführenden Kommandos gespeichert, ich vermute mal, damit nichts unvorhergesehenes passiert.

Re: Makro zum drucken

Verfasst: Di 5. Apr 2011, 17:34
von charly
Hallo kierspe!

Das Makro kann nicht funktionieren, da der Makrorekorder den entscheidenden Befehl, mit dem Wort "Rem" deaktiviert hat. Entferne das Rem.

Code: Alles auswählen

dispatcher.executeDispatch(document, ".uno:Print", "", 0, Array())
Allerdings öffnet diese Makro dann nur den Printerdialog, in dem du noch Einstellungen vornehmen kannst. Ein Makro mit direktem Druck musst du durch drücken des Druckerbutton erzeugen. Dann lautet der entscheidende Befehl folgendermaßen.

Code: Alles auswählen

dispatcher.executeDispatch(document, ".uno:PrintDefault", "", 0, Array())
Gruß
Charly

Re: Makro zum drucken

Verfasst: Mi 6. Apr 2011, 10:38
von kierspe
Vielen Dank, es funktioniert. Das war der Fehler. :D