Standarddrucker wechselt nach Makro-Ausführung

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Musashi0815
*
Beiträge: 19
Registriert: Di, 28.09.2010 11:30

Standarddrucker wechselt nach Makro-Ausführung

Beitrag von Musashi0815 »

Hallo zusammen,

folgendes Problem:

Ich habe 2 neue Makros erstellt.
- Makro zum Drucken über ein Fax, hier ist der Drucker explizit hinterlegt (Name: Faxen)
- Makro zum 2mal Drucker auf Standardrucker (Name: zweimalDrucken)

Anbei der Makro-Code:

Code: Alles auswählen

sub Faxen
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 ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Printer"
args1(0).Value = "Kyocera FS-1118MFP NW-FAX"

dispatcher.executeDispatch(document, ".uno:Printer", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Copies"
args2(0).Value = 1
args2(1).Name = "Collate"
args2(1).Value = true

dispatcher.executeDispatch(document, ".uno:Print", "", 0, args2())


end sub


sub zweimalDrucken
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 ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Copies"
args1(0).Value = 2
args1(1).Name = "Collate"
args1(1).Value = true

dispatcher.executeDispatch(document, ".uno:Print", "", 0, args1())


end sub
Wenn ich nun zweimalDrucken ausführen, druckt er korrekt auf dem im Windows eingestellten Standardrucker.
Führe ich dann Faxen aus druckt er auf dem eingestellten Kyocera FS-1118MFP NW-FAX.
Führe ich dann wieder zweimalDrucken aus, druckt er wieder auf dem Kyocera FS-1118MFP NW-FAX. Jedoch soll er auf dem Windows-Standarddrucker
drucken.

Den Drucker auch explizit im Makro zu hinterlegen ist ja auch dämlich, da bei einem Drucker-Tausch o.Ä. das Makro immer wieder angepasst werden muss.


Ich hoffe Ihr könnt mir weiterhelfen.


Vielen Dank
Gruß
0815
OS: Windows 7 X64
OOo: 3.2.1.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Standarddrucker wechselt nach Makro-Ausführung

Beitrag von komma4 »

Gebe beim "zweimalDrucken" nochmals den Namen des Druckers mit.

Code: Alles auswählen

dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Copies"
args1(0).Value = 2
args1(1).Name = "Collate"
args1(1).Value = true
args1(2).Name = "Printer"
args1(2).Value = "Kyocera FS-1118MFP NW-FAX"

Hilft das?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Musashi0815
*
Beiträge: 19
Registriert: Di, 28.09.2010 11:30

Re: Standarddrucker wechselt nach Makro-Ausführung

Beitrag von Musashi0815 »

Gast hat geschrieben:
komma4 hat geschrieben:Gebe beim "zweimalDrucken" nochmals den Namen des Druckers mit.

Code: Alles auswählen

dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Copies"
args1(0).Value = 2
args1(1).Name = "Collate"
args1(1).Value = true
args1(2).Name = "Printer"
args1(2).Value = "Kyocera FS-1118MFP NW-FAX"

Hilft das?
Hilft schon.

Ist aber leider nicht so optimal, da ja immer wenn sich der Standarddrucker ändert (Bei Drucker-Tausch, oder ähnliches), das Makro anpepasst werden muss.
Bzw. ich das Makro für jeden Benutzer einzeln anlegen muss, da die Drucker bei jedem Benutzer anders heißen.

Gibt es da nicht eine allgemeine Lösung?
Das das Makro immer den Standard-Windowsdrucker nimmt?


Gruß
0815
War natürlich ein Eintrag von mir :)

Keiner 'ne Ahnung?


Gruß
0815
OS: Windows 7 X64
OOo: 3.2.1.
Antworten