Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Virtueller Drucker mit Delphi (https://www.delphipraxis.net/79213-virtueller-drucker-mit-delphi.html)

Union 18. Okt 2006 17:18

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:
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;
5. Generic Drucker auf Port 127.0.0.1 RAW erstellen
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

ol1uw 18. Okt 2006 18:01

Re: Virtueller Drucker mit Delphi
 
Es muss nicht gleich ein eigener Treiber sein.
Wir haben so was ähnliches im Einsatz.
Basis ist dieser Artikel
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 Faxanwendung erwartet die Dokumente einfach im Postscriptformat.

Uwe

skyquaker 18. Okt 2006 18:41

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

skyquaker 18. Okt 2006 18:47

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.

Union 18. Okt 2006 18:55

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;

skyquaker 18. Okt 2006 21:30

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;

Union 19. Okt 2006 07:19

Re: Virtueller Drucker mit Delphi
 
Hast Du auf dem PC eine Firewall? Dann musst Du evtl. den Port erst freischalten.

skyquaker 19. Okt 2006 08:45

Re: Virtueller Drucker mit Delphi
 
Ich hab nen Router. Die WIndows Firewall hab ich deaktiviert, muss ich auf dem Router PortForwarding aktivieren ?

Union 19. Okt 2006 08:46

Re: Virtueller Drucker mit Delphi
 
Wenn beide PCs im selben Netz sind, dann nicht.

skyquaker 19. Okt 2006 08:49

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 22:37 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz