Hallo,
ich möchte den Inhalt des TWebbrowser ausdrucken.
Insofern kein Problem, dass mir mit
Code:
WebBrowser.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER);
eine Funktion dafür zur Verfügung steht.
Nur, es müssen folgende Bedingungen zusätzlich erfüllt werden:
- Der Drucker muss festlegbar sein
- Die Anzahl der Kopien muss festlegbar sein
- Das Format muss festlegbar sein (landscape/portrait)
- Der Ausgabeschacht muss festlegbar sein
- Die Papiergröße (A4, A5) muss festlegbar sein
- Weitere Eigenschaften können noch hinzukommen, sind bis jetzt aber nicht notwendig
Diese Eigenschaften müssen
vor dem Druck gesetzt werden und zwar
ohne, dass ein SetupDialog erscheint (die notwendigen Daten zur Bestückung kommen aus einer Tabelle/
DB).
Ich habe es bis jetzt so gelöst, dass ich den Standard-Drucker auf meinen gewünschten Drucker und anschließend alle Eigenschaften über DEVMODE und PRINTER_INFO_2 gesetzt habe.
Funktioniert prima.
Nur: hinterher ist natürlich der Standarddrucker mit all seinen Eigenschaften überschrieben. Wenn der User jetzt etwas anderes (meinetwegen eine Word-Datei) ausdrucken will, dann hat er immer noch meine Eigenschaften als default, müsste also alles wieder zurück setzen. Das ist schlicht und einfach eine Zumutung.
Es müsste doch auch irgendwie machbar sein, nicht die globalen Standard-Drucker-Daten zu überschreiben, sondern das ganze lokal auszuführen, so dass der Standard-Drucker mit all seinen Eigenschaften unberührt bleibt, oder?
Wer weiß Rat?
Gruß und TIA
(Crosspost in
dsdt ->
http://forum.dsdt.info/viewtopic.php?t=31399)