Laden...

Drucker emulieren?

Erstellt von Torres vor 17 Jahren Letzter Beitrag vor 16 Jahren 4.554 Views
T
Torres Themenstarter:in
3 Beiträge seit 2007
vor 17 Jahren
Drucker emulieren?

Liebe Community!

Mir wurde befohlen etwas zu programmieren und ich habe jetzt keine Ahnung wo ich anfangen soll. Vielleicht könnt ihr mir ein paar Tipps geben, wonach ich suchen soll oder wie ich das lösen könnte.

Folgende Aufgabe:
Wenn der Benutzer in einer firmeninternen Anwendung auf "Drucken" klickt, soll der Text, den er gerade mit dieser bestehenden Applikation bearbeitet, nicht normal am Drucker ausgedruckt werden, sondern von dem von mir zu schreibenden Programm als Text-Datei gespeichert werden. Es kann durchaus so sein, daß der Benutzer zuerst selbst mein Programm starten muß, bevor das funktioniert......

Wie fange ich da an? Wonach soll ich im Internet suchen?
Muß ich da einen Drucker simulieren oder kann ich da an irgendeinem Port oder sonst wo "mithören"? Oder gibts einen anderen Weg?

Völlig ratlos....

Danke
Torres

_
227 Beiträge seit 2006
vor 17 Jahren

Einen Druckertreiber entwickeln.
Gleiches tut Adobe oder Microsoft mit pdf/xps sowie Office OneNote auch.

1.457 Beiträge seit 2004
vor 17 Jahren

Da gibt es meiner Meinung nach nur einen Weg und der ist nicht über .NET.

Du musst einen Druckertreiber schreiben, der die entsprechenden Druckdaten als Drucker annimmt und dann entweder an eine .NET Anwendung weitergibt oder selber die Daten verarbeitet.

Ich glaube die Windows Driver SDK wäre der richtige Ansatz.

4.221 Beiträge seit 2005
vor 17 Jahren

So was geht natürlich auch mit .Net

Zwischen Applikation und Drucker funken?

PS: Ist bei diversen Kunden so im Einsatz.

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

T
Torres Themenstarter:in
3 Beiträge seit 2007
vor 17 Jahren

Liebe Leute!

Danke für die reichhaltigen Antworten. Wir werden wohl etwas fertiges verwenden und anpassen. In unserem Falle kann folgendes Ding schon fast alles, was wir brauchen:

http://www.miraplacid.com/mtd/

Danke
Martin Zeller

4.221 Beiträge seit 2005
vor 17 Jahren

Du kannst natürlich auch einen TextOnly (Generic) Drucker installieren.

Und wenn Du diesen an File: statt an einem LPT installierst kannst du den reinen Text auch in ein File speichern.

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

T
Torres Themenstarter:in
3 Beiträge seit 2007
vor 16 Jahren

Hallo, ich muß diesen Thread noch einmal nutzen 😁

Lieber Programmierhans,

die Lösung in dem Link, den du gepostet hast, klingt interessant:

--> TcpListener / TcpClient coden welcher auf einem Port lauscht (ich glaube Port 9100) war der Standard.

--> Dann einen TextDrucker (TextOnly) installieren und diesen dann verbinden... dazu muss ein neuer Anschluss definiert werden.
--> Create New Port
--> Standard TCP/IP-Port
--> Custom
--> Protocol RAW
--> Port (denjenigen den Du verwendest oder eben 9100)

Dazu eine Frage:
Wenn ich also einen Drucker so installiere:

rundll32 printui.dll,PrintUIEntry /if /f C:\Windows\inf\ntprint.inf /r "MYPORTNAME1:" /m "Apple Color LW 12/660 PS" /b "MYPRINTERNAME" /z"

bräuchte ich "nur" mehr einen TcpListener schreiben, der auf den Port "MYPORTNAME1:" hört. Ist das richtig?
Und dann könnte ich den Drucker mit:

rundll32 printui.dll,PrintUIEntry /dl /n"MYPRINTERNAME"

deinstallieren.

Habe ich das richtig verstanden?

Danke
Martin Zeller