Seite 1 von 1

Drucken per Makro - ich kapiers nicht...

Verfasst: Do 30. Jan 2014, 16:10
von Kistenschieber
Hallo Forum,

zu meiner Wenigkeit ist zu sagen das ich von Programmierung quasi nichts verstehe.
Ich hangel mich halt von Problemlösung zu Problemlösung.

Aktuell nervt mich folgendes:

Ich wollte ein Makro aufzeichnen das, eigentlich ganz simpel, auf Mausklick die aktuell gewählte Tabelle in Calc 4x druckt.
Wenn ich den Makrorekorder benutze und aufzeichne wie ich im "Datei drucken" Dialog die entsprechenden Einstellungen vornehme funktioniert das ganze überhaupt nicht.
Als Workaround habe ich dann aufgezeichnet wie 4x das Schnell / Direktdruck Icon angeklickt wird.
Mit durchwachsenem Erfolg. Der Druck funktioniert so zwar, aber da die Prozedur 4x aufgerufen wird (und das auf einem langsamen Netzwerkdrucker) dauert das ganze elend lange.

Wenn ich das aufgezeichnete Makro richtig interpretiere wir der eigentliche Druckauftrag hier angestossen:

Code: Alles auswählen

dispatcher.executeDispatch(document, ".uno:PrintDefault", "", 0, Array())
Da muss es doch irgendwo die Möglichkeit geben die Anzahl der Kopien als Argument mitzugeben?

Zum Einsatz kommt übrigens LO 3.6

Wahrscheinlich ist die Lösung mal wieder so einfach, das ich den Wald vor lauter Bäumen nicht sehe...

Über Lösungsvorschläge würde ich mich freuen.

Gruß

Kistenschieber

Re: Drucken per Makro - ich kapiers nicht...

Verfasst: Do 30. Jan 2014, 19:02
von Pit Zyclade
Ich bin vorlaut und ebenfalls kein Experte in Sachen Programmierung. Aber unter Win würde ich den Druck übers Menü weählen und den Druckertreiber auf 4x hochschrauben. Dazu benötige ich kein Programm. Aber wenn es ein Programm unbedingt sein soll und keine Schleife für 4x infrage kommt, dann mußt Du Dich zum gewählten Befehl belesen, ob es eine Option gibt.
Entschuldige, falls ich Dich genervt habe.

Habs gelesen. PrintDefault hat keine solche Option. Nimm Print(von,bis,Kopienanzahl). Kannst Du nachlesen:
http://oootools.free.fr/macro_ooo/doc/D ... lemand.pdf

Re: Drucken per Makro - ich kapiers nicht...

Verfasst: Fr 31. Jan 2014, 08:14
von Kistenschieber
Hallo Pit Zyclade,

danke für den Link, sowas hatte ich bisher vergeblich gesucht.
(Die Sache mit dem Wald und den Bäumen...)

Werd auf jeden Fall versuchen mich da durch zu beißen.

Das ganze findet übrigens unter Linux statt, hier könnte ich zwar einen Drucker anlegen der per default 4 Kopien pro Auftrag druckt, aber den könnte ich auf dem bisherigen Weg auch nur als Standarddrucker ansprechen.
Mit der Konsequenz das aus anderen Anwendungen immer unnötig viele Kopien gedruckt würden...

Manchmal dreht man sich echt im Kreis.

Nochmals Danke.

Gruß

Kistenschieber

Re: Drucken per Makro - ich kapiers nicht...

Verfasst: Fr 31. Jan 2014, 10:35
von karolus
Hallo

Wie wärs mit einem schlichtem:

Code: Alles auswählen

...
for dummy = 0 to 3
     dispatcher.executeDispatch(document, ".uno:PrintDefault", "", 0, Array())
next dummy
Karolus

Re: Drucken per Makro - ich kapiers nicht...

Verfasst: Fr 31. Jan 2014, 18:49
von Pit Zyclade
Hallo karolus,

Dein Vorschlag ist ja die berühmte Schleife. Die aber wollte er nicht, weil dann der Druckvorgang mehrmals angestoßen wird und das Zeit kostet (wenn ich ihn richtig verstanden habe). Das ist bei mir unter Win ebenso. Wenn man Zeit sparen will, muß man den Drucker zwingen, das bereits Verdaute mehrfach zu drucken. Unter Win geht das mit dem Druckertreiber einfach. Dies aber wollte er mit makro realisieren. Du kannst das sicher, ich nicht...

Re: Drucken per Makro - ich kapiers nicht...

Verfasst: Fr 31. Jan 2014, 23:55
von F3K Total
Hi,
so sollte es gehen:

Code: Alles auswählen

Sub Print_4_Pages
    dim printProps(1) as new com.sun.star.beans.PropertyValue
    printProps(0).name = "Wait"
    printProps(0).Value = true
    printProps(1).name = "CopyCount"
    printProps(1).Value = 4
    Thiscomponent.Print(printProps())
End Sub
Anbei ein Beispiel
Gruß R

Re: Drucken per Makro - ich kapiers nicht...

Verfasst: Mo 3. Feb 2014, 12:09
von Kistenschieber
@karolus: Danke für den Lösungsvorschlag, aber das behebt ja leider nicht das ursprünliche Problem des mehrfachen Senden eines Druckauftrages.

@F3K Total: Diese Lösung funktioniert perfekt, der Nachteil ist ich blicke nicht so ganz durch :-)
Dem Makro wird, wenn ich das richtig verstehe, quasi ein Argument (Anzahl der Kopien) übergeben (In der Beispieldatei "Print_n_Pages.ods").
Das geht irgendwie über das Event (klick auf den entsprechenden Button).
Wie weise ich einem Button so ein Event (und einen entsprechenden Wert) zu?

Sorry falls ich nerve, aber mit der Lösung hast du mich jetzt neugierig gemacht.

Gruß

Kistenschieber

Re: Drucken per Makro - ich kapiers nicht...

Verfasst: Mo 3. Feb 2014, 17:02
von F3K Total
Kistenschieber hat geschrieben:Wie weise ich einem Button so ein Event (und einen entsprechenden Wert) zu?
Gehe in den Entwurfsmodus, markiere einen Button, rechte Maus->Kontrollelement.
Es gibt bis zu drei Reiter.
Allgemein -> Zusatzinformation (.tag) hier steht die Druckanzahl
Daten, hat der Button nicht
Ereignisse, da wird das Makro zugeordnet.

HTH R