![]() |
Re: Virtueller Drucker mit Delphi
Auf vielfachen Wunsch ;)
1. TIdTcpServer auf das Formular bringen 2. DefaultPort auf 9100 setzen 3. Active auf True setzem 4. Event OnExecute erzeugen:
Delphi-Quellcode:
5. Generic Drucker auf Port 127.0.0.1 RAW erstellen
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var DataStream : TStream; begin DataStream := TMemoryStream.Create; AThread.Connection.ReadStream(DataStream, -1, true); ShowMessage(Format('Es wurden %d Byte empfangen', [DataStream.Size])); DataStream.Free; end; 6. Programm compilieren und starten [edit]Ach so, Du musst natürlich auch was drucken ;) [/edit] 7. Statt ShowMessage irgendwas mit den empfangenen Daten machen |
Re: Virtueller Drucker mit Delphi
Es muss nicht gleich ein eigener Treiber sein.
Wir haben so was ähnliches im Einsatz. Basis ist dieser ![]() Entweder so verwenden und das Verzeichniss überwachen oder eben den C Quelltext abändern das die eigne Anwendung gestartet wird. Bei uns als Faxdrucker im Einsatz der eigentliche Treiber für den Drucker ist ein ganz normaler Postscript Treiber z.B. Appel Laserwriter die ![]() Uwe |
Re: Virtueller Drucker mit Delphi
Liste der Anhänge anzeigen (Anzahl: 1)
Ich kann kein C++ :cry:
Könnte mir jemand vielleicht helfen, den SOurce so umzuschreiben, dass er mein Programm mit dem Pfad der zuvor gespeicherten Datei als Parameter aufruft ? Frage : Wenn ich dieses Ding da kompiliere und einbinde, sieht das dann so aus, als währe es ein Drucker? Source ist im Anhang |
Re: Virtueller Drucker mit Delphi
Thx Union :)
Ich hab mal versucht dem Computer zu sagen 192.168.xx.x währe ein Drucker. Hat funktioniert. So jetzt muss ich nur noch ein App schreiben. |
Re: Virtueller Drucker mit Delphi
BTW, wie Deinem anderen Thread zu entnehmen, möchtest Du die Druckdaten zunächst in einer Datei speichern. Das geht dann wie folgt (natürlich den Dateinamen c:\temp... entsprechend ändern):
Delphi-Quellcode:
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var DataStream, FileStream : TStream; begin DataStream := TMemoryStream.Create; AThread.Connection.ReadStream(DataStream, -1, true); ShowMessage(Format('Es wurden %d Byte empfangen', [DataStream.Size])); FileStream := TFileStream.Create('c:\temp\test.prn', fmCreate); DataStream.Position := 0; FileStream.CopyFrom(DataStream, DataStream.Size); FileStream.Free; DataStream.Free; end; |
Re: Virtueller Drucker mit Delphi
Ja, vorerst wollte ich das auch. Aber ich hab mich dazu entschlossen, die Daten direkt an einen anderen PC weiterzuleiten. Dazu habe ich einen Server geschreiben der Port 9100 abhört. Wenn ich nun Drucke werden die zu druckenden Daten im RAW Format an den anderen PC auf Port 9100 übermittelt. Zumindest in der Theorie :(
Leider funktioniert es nicht Könnte mir jemand ein Beispiel schreiben ? (Es muss über das LAN funktionieren) UNION hat schon eins geschrieben, aber geht das mit dem LAN UNIONS BSP :
Delphi-Quellcode:
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var DataStream, FileStream : TStream; begin DataStream := TMemoryStream.Create; AThread.Connection.ReadStream(DataStream, -1, true); ShowMessage(Format('Es wurden %d Byte empfangen', [DataStream.Size])); FileStream := TFileStream.Create('c:\temp\test.prn', fmCreate); DataStream.Position := 0; FileStream.CopyFrom(DataStream, DataStream.Size); FileStream.Free; DataStream.Free; end; |
Re: Virtueller Drucker mit Delphi
Hast Du auf dem PC eine Firewall? Dann musst Du evtl. den Port erst freischalten.
|
Re: Virtueller Drucker mit Delphi
Ich hab nen Router. Die WIndows Firewall hab ich deaktiviert, muss ich auf dem Router PortForwarding aktivieren ?
|
Re: Virtueller Drucker mit Delphi
Wenn beide PCs im selben Netz sind, dann nicht.
|
Re: Virtueller Drucker mit Delphi
ICh hatte mal so einen ChatClient geproggt, der lief begrenzt(Er hat nur shr selten was übermittelt). Ich glaub ich programmiere des nochmal neu und schau obs geht. :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz