Hallo,
wenn ich beim @Command "FilePrint" Parameter angebe, wird das Dokument ohne Druckdialog auf dem Vorgabedrucker gedruckt (?).
Kann ich über einen Formelbefehl vor dem Drucken den Drucker festlegen?
Danke für Eure Antworten
Gruss
Zonk
Hallo,
wenn ich beim @Command "FilePrint" Parameter angebe, wird das Dokument ohne Druckdialog auf dem Vorgabedrucker gedruckt (?).
Kann ich über einen Formelbefehl vor dem Drucken den Drucker festlegen?
Danke für Eure Antworten
Gruss
Zonk
Nein, die Frage gabs hier schon mehrfach.
Die einzige Lösung wäre das per Win-API zu machen.
Hatte Diali schon mal in einem der Postings dargestellt, also einfach mal die Suche bemühen
die Win-Api nutze ich dafür nicht mehr, da diese Methode bei Updates und SP anfällig ist und dann ggf. nicht mehr funktioniert. :cry:
Zur Zeit benutze ich den WSH um den Drucker umzuschalten.
Im Beispiel wird das aktuelle Dokument im UI auf den Druckertreiber "FreePDF XP" gedruckt.
Sub Initialize
Call myprinter("FreePDF XP")
End Sub
Sub myprinter(printer As String)
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim session As New NotesSession
Dim uidoc As NotesUIDocument
Dim PrinterPathAndName As String
Dim objNetwork As Variant
Set db=session.CurrentDatabase
PrinterPathAndName=printer
Set objNetwork=CreateObject("WScript.Network")
gDp = objNetwork.GetDefaultPrinter
objNetwork.SetDefaultPrinter PrinterPathAndName
Print "Printer changed to " + Cstr(PrinterPathAndName)
Set uidoc=ws.CurrentDocument
Call uidoc.Print( 1 )
End Sub
Alles anzeigen
Gruß
Dirk
hi dirk,
was benötige ich für
Set objNetwork=CreateObject("WScript.Network") ?
bzw. was muss installiert sein? habe hier w2k prof
oder gibts von da schon wieder mal was neues um den drucker zu wechseln. breche mir hier echt mal wieder einen ab ...
Du musst nur den WSH (Windows Scripting Host) installieren.
Sollte aber bei der Installation von W2k dabei sein.
Gruß
Dirk
bin ich auch mal von ausgegangen. bekomme allerdings beim "GetDefaultPrinter" ne fehlermeldung. das ganze läuft in ner vmware session. könnte das das problem sein?
weisst du zufällig wie die OLE Klasse heissen müsste? dann kann ich zumindest mal schauen ob es drauf ist oder nicht ...
so, hab mal ein bischen weitergeforscht.
also der setdefaultprinter funktioniert. den getdefaultprinter gibt es (zumindest an dieser stelle) nicht mehr.
nur das drucken über freepdfxp klappt leider nicht. habe das problem, das er zwar den drucker umstellt, jedoch anscheinend noch auf den alten standard drucker druckt.
ich werd bald wahnsinnig ...
lösche mal die Zeile
gDp = objNetwork.GetDefaultPrinter
Damit wollte ich den aktuellen Drucker in eine Var schreiben, um hinterher wieder den Drucker umzustellen.
Gruß
Dirk
hab ich schon. klappt jetzt auch, wenn ich den drucker vor dem öffnen der maske ändere. im geöffneten uidoc macht er leider 'mist'.
die frage ist jetzt nur noch: wie stelle ich auf den standarddrucker zurück bzw. wie komme ich an den namen um ihn zurückzustellen?
habe in der wscript klasse nix gefunden ...
bin miorgen nicht im büro, lass mich am mittwoch noch mal nachsehen.
gruß
dirk
also den Default-Printer kannst Du entweder über die Registry oder mit der Win-Api ermitteln.
Hier ein bei. für die Win-Api:
Declare Function GetProfileString Lib "Kernel32" Alias "GetProfileStringA" (Byval lpAppName As String, Byval lpKeyName As String, _
Byval lpDefault As String, Byval lpReturnedString As String, Byval nSize As Long) As Long
DefPrinter = Trim(GetProfileString("WINDOWS", "DEVICE", "", String(128, 0), 127))
Gruß
Dirk
Finde diese Lösung eigentlich super. Ich habe nur das Problem, dass sie bei meinen Tests nur in der Client-Version 7.0.2 funktioniert.
Bei dem Test auf dem 6.5.3 Client wird der std. Drucker zwar umgeschaltet, aber Notes druckt trotzdem auf dem ursprünglich vorgegebenen.
Ich benötige aber eine Drucker-Umschaltlösung für 6.5.3. - Irgendeine Idee - mache ich etwas falsch - sollte diese Lösung auch in 6.5.3 funktionieren - gibt es einen Trick, an welchen Event die Routine angehängt wird ?
Gruß
Hartmut
mh. habe es selber nur unter 6.5.1 und 6.5.4 eingesetzt, da funktioniert es.
Welches BS setzt Ihr auf diesen Rechnern ein?
Gruß
Dirk
Hallo Dirk,
wir nutzen zur Zeit WIN XP.
Meine lokalen Tests mache ich in Notes 7.0.0. Dort ist das Problem, dass die Drucker-Umschaltung vom Client nicht "gesehen" wird.
Erst im 7.0.2 wird die Umschaltung, wenn ich sie im Initialize aktiviere, auch vom Client akzeptiert.
Gruß
Hartmut
kanns mit 7.0.0 nicht testen - SORRY.
Gruß
Dirk
Hallo Dirk,
ich werde ein System mit 6.5.4 aufsetzen.
Melde mich dann.
D A N K
Moin Moin,
Ich hab da eben so ein ähnliches Problem...
Konnte das dank dieses Threads im großen und ganzen lösen....bei mir druckt er jetzt auch mit freepdf, nur will ich ja acuh danach den alten Standart wieder herstellen, nur wie gesagt getdefaultprinter ergiebt ne errormessage, dann hat ja diali den codeschnipsel mit der registry gepostet...soweit so gut, dummerweise ergibt das auslesen bei mir "47" womit natürlich der alte drucker nicht gesetzt werden kann :-?
wie bekomme ich den denn jetzt raus?
Danke schonmal im vorraus