Ich benutze schon seit einiger Zeit CUPSMBS.SetDefaultPrinter(mein_druckername)
Die Tage ist mir dann aufgefallen, dass nach einem Neustart der App, die Zuordnungen immer zurückgesetzt sind.
Setze ich dann alles wieder neu, klappt es innerhlab der Sitzung bis zum nächsten Start der App, dann fängt alles wieder von vorne an.
in mein_druckername stehen die Namen so zB: EPSON_TM_T20___NeoServers_iMac , bei einem freigegeben Drucker im Netzwerk
Die funktioneren nach einem Neustart der App aber nicht mehr, warum?
Irgendwo mache ich einen Denkfehler, hat jemand eine Idee?
Ich vermute das CUPS es nicht permanent festlegt und das System beim Neustart woanders diese Einstellung ldt.
Und ich hab Zweifel, dass man als Nicht Admin sowas festlegen darf.
Nicht nach einem Neustart des Rechners, bereits nach Neustart der App funktioniert es nicht mehr korrekt!
Ich bin ja admin an meinem Mac
Dann brauchst du wohl eine andere Funktion, wenn Du das dauerhaft ndern willst.
OK, und wie wre das anders lsbar? hast du eine Idee??
Ich hab das mal weiter eingekreist, wenn ich nur mit OpenPrinterDialog arbeite klappt es, er schlgt mir dann im Druckdialog den korrekten Drucker vor.
Drucke ich jedoch ohne Dialog klappt es eben nicht … als Workaround knnte ich beim allerersten Druck den Dialog anzeigen, zumal ich nur in einem Modul ohne Dialog drucke.
Vielleicht kannst du damit etwas anfangen und nochmal einen Blick in die Plugins werfen?
Für Drucken ohne Dialog kannst du mit NSPrintInfoMBS.sharedPrintInfo den Drucker wechseln.
Sehe ich das richtig, NSPrintInfoMBS.sharedPrintInfo braucht nur den Setupstring um zu wissen, welcher Drucker das ist?!
könnte sein.
Ich hab es halt schon benutzt um mit OpenPrinter zu drucken und das zu einem speziellen Drucker oder in eine PDF Datei umzuleiten.
Dein Example: “Printer Selection in Cocoa” macht genau, was ich brauche…
Leider hat sich noch ein Problem ergeben. Sobald ich meinen setupstring einsetze geht es schief…
also so klappt es prima:
dim ps as new PrinterSetup
dim g as Graphics = OpenPrinter(ps)
if g<>Nil then
g.DrawString “Hello World”, 50, 50
end if
nehme ich nun meinen setupstring druckt er wieder auf “irgendeinen” meiner angechlossenen Drucker, obwohl der Setupstring definitiv von dem richtigen Drucker stammt.
dim g as Graphics = OpenPrinter(mein_setup_string)
if g<>Nil then
g.DrawString “Hello World”, 50, 50
end if
Hast du da eine Idee??
ber den Setupstring definierst du alle Einstellungen neu.
Besser nur NS Klassen nehmen.
Kann ich denn über die NS Klassen den Setupstring sichern, damit ich ihn dann später wieder laden kann.
Da sind halt spezielle Einstellungen drin…
siehe doch das Beispiel bei NSPrintInfoMBS:
http://www.monkeybreadsoftware.net/class-nsprintinfombs.shtml
Das Plugin kann ja durchaus SetupString rein/raus schieben.
Es ist zum Verzweifeln, auch so tut es nicht, sobald mein ps_pos Setupstring zum Einsatz kommt wechselt er den Drucker nicht mehr.
Ich brauche den aber, weil da zB drin steht, dass nach dem Druck die Kassenschublade geöffnet wird… was ja auch prima funktioniert, sofern ich OpenPrinterDialog einsetze… was ich ja letztendlich mit der ganzen Anstrengung umgehen will
dim PrintInfo as NSPrintInfoMBS = NSPrintInfoMBS.sharedPrintInfo
PrintInfo.SetupString = ps_pos.SetupString
Ich wei jetzt aber nicht, wie ich da helfen kann!?
Ich muss bei meinem Workaround bleiben, dass ich beim ersten Druck den Dialog anzeige… danach merkt er es sich!