Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Druckerdaten über Netzwerk empfangen, wie? (https://www.delphipraxis.net/168517-druckerdaten-ueber-netzwerk-empfangen-wie.html)

zeras 25. Mai 2012 19:56

Druckerdaten über Netzwerk empfangen, wie?
 
Hallo,

wir haben bei uns auf Arbeit eine Steuerung, mit welcher man Bildschirmausdrucke machen kann. Dabei kann man auch einen Drucker übers Netzwerk wählen. Dazu muss man die IP des Druckers und den Port eingeben. Mit einem Netzwerkdrucker habe ich das probiert und es funkioniert ganz gut. Nun wollte ich den Datenstrom auf einen PC lenken. Geht das vielleicht mit den Indy Kompos? Wenn ja, was muss ich im "groben" machen, damit ich an die Daten komme. Die Auswertung ist erst mal nebensächlich. Muss ich erst den Port öffnen und dann die Inhalte abfragen? Mit Netzwerktraffic habe ich noch keine großen Erfahrungen.
Wenn nein, wie könnte ich vorgehen?

Jede Info ist hilfreich.

Bernhard Geyer 25. Mai 2012 20:11

AW: Druckerdaten über Netzwerk empfangen, wie?
 
Es sollt reichen auf dem PC auf dem der Druck gestartet wird das in eine Datei umzuleiten (Einstellungen beim Drucken: "Drucken in Datei")

zeras 25. Mai 2012 20:38

AW: Druckerdaten über Netzwerk empfangen, wie?
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1168141)
Es sollt reichen auf dem PC auf dem der Druck gestartet wird das in eine Datei umzuleiten (Einstellungen beim Drucken: "Drucken in Datei")

Das geht leider nicht, da das eine Steuerung ist. Da läuft kein Windows drauf und ich kann da auch nichts ändern. Somit wollte ich den Weg übers Netzwerk machen.

WM_CLOSE 25. Mai 2012 21:58

AW: Druckerdaten über Netzwerk empfangen, wie?
 
Wilst du sowas? Bei Google suchenpdf als netzwerkdrucker

zeras 26. Mai 2012 07:58

AW: Druckerdaten über Netzwerk empfangen, wie?
 
Vielleicht habe ich mich nicht genau ausgedrückt.
Quelle der Druckerdaten ist eine Steuerung, kein Windows PC! Es läuft dort ein Spezialbetriebssystem, wo keine Änderungen möglich sind.
Auf dieser Steuerung kann man eine IP Adresse für das Drucken übers Netzwerk eingeben und dazu einen Port. Diese Daten will ich dann mit einem Windows PC empfangen und entschlüsseln. Das Entschlüsseln ist erst einmal zweitrangig. Das Empfangen steht im Moment zur Debatte. Der Windows PC soll so tun, als wenn er ein Drucker wäre. Ich habe mit den Indy Komponenten noch nicht gearbeitet, hoffe aber, dass eine der Kompos das kann. Nur welche? Bei meinem Test hatte ich einenn Netzwerkdrucker und dort wurde die Seite gedruckt. Nun will ich den Drucker gegen einen PC austauschen und dort die Druckerdaten empfangen.
Ich hoffe, dass ist ein wenig ausführlicher.

haentschman 26. Mai 2012 08:43

AW: Druckerdaten über Netzwerk empfangen, wie?
 
Moin...

die Daten empfangen sollte nicht das Problem darstellen. Schwieriger wird es die Kommunikation zwischen Druckertreiber (Steuerung) und einem (evt.) Drucker zu erraten. Vieleicht meldet sich ein Drucker zurück und sagt "ich bin da".

Was willst du mit den empfangenen RAW Daten anfangen ?

prinzipielle Idee:
- Server der auf einen bestimmten Port lauscht.
---> nur wie reden die beiden ? :gruebel:
- nimmt die binären Daten entgegen
- speichert z.B. in Datei

zeras 26. Mai 2012 08:54

AW: Druckerdaten über Netzwerk empfangen, wie?
 
Zitat:

Zitat von haentschman (Beitrag 1168177)
Schwieriger wird es die Kommunikation zwischen Druckertreiber (Steuerung) und einem (evt.) Drucker zu erraten. Vieleicht meldet sich ein Drucker zurück und sagt "ich bin da".

Ja das könnte ein Problem werden. Das habe ich bis jetzt nicht bedacht. Ich will das einfach mal probieren und wenn es geht, dann bin ich froh.

Zitat:

Zitat von haentschman (Beitrag 1168177)
Was willst du mit den empfangenen RAW Daten anfangen ?

Meines Wissens sollen da auch ASCII Daten kommen, die mich interessieren. Die will ich dann auswerden. Wenn ein PCL5 Datenstrom kommt, habe ich auch schon Routinen, mit denen ich wieder ein Bild erzeugen kann.

Zitat:

Zitat von haentschman (Beitrag 1168177)
prinzipielle Idee:
- Server der auf einen bestimmten Port lauscht.
---> nur wie reden die beiden ? :gruebel:
- nimmt die binären Daten entgegen
- speichert z.B. in Datei

Hier ist das, was ich suche. Also muss ich mal bei Indy nach einem Server schauen und den Port eintragen, der auch in der Steuerung eingetragen ist. Danke für den Tipp. So will ich erst mal anfangen. Mal sehen, ob und was rauskommt.

Helmi 26. Mai 2012 08:58

AW: Druckerdaten über Netzwerk empfangen, wie?
 
Zitat:

Zitat von zeras (Beitrag 1168172)
Quelle der Druckerdaten ist eine Steuerung, kein Windows PC! Es läuft dort ein Spezialbetriebssystem, wo keine Änderungen möglich sind.

Um was für eine Steuerung handelt es sich denn?
Siemens, Fanuc, Allen-Bradley, NUM?

zeras 26. Mai 2012 09:01

AW: Druckerdaten über Netzwerk empfangen, wie?
 
Zitat:

Zitat von Helmi (Beitrag 1168181)
Zitat:

Zitat von zeras (Beitrag 1168172)
Quelle der Druckerdaten ist eine Steuerung, kein Windows PC! Es läuft dort ein Spezialbetriebssystem, wo keine Änderungen möglich sind.

Um was für eine Steuerung handelt es sich denn?
Siemens, Fanuc, Allen-Bradley, NUM?

Es ist eine Sigmatek Steuerung.

Helmi 26. Mai 2012 09:02

AW: Druckerdaten über Netzwerk empfangen, wie?
 
Zitat:

Zitat von zeras (Beitrag 1168182)
Es ist eine Sigmatek Steuerung.

Hab ich ja noch nie gehört..

zeras 26. Mai 2012 09:05

AW: Druckerdaten über Netzwerk empfangen, wie?
 
Zitat:

Zitat von Helmi (Beitrag 1168183)
Zitat:

Zitat von zeras (Beitrag 1168182)
Es ist eine Sigmatek Steuerung.

Hab ich ja noch nie gehört..


Sigmatek/

bernau 26. Mai 2012 09:07

AW: Druckerdaten über Netzwerk empfangen, wie?
 
Welchen Drucker erwartet diese Sigmatek Steuerung.

Jeder Drucker hat seine Eigenheiten.

Wenn ich jetzt mal 25 Jhre zurück denke, da wurden auf den Drucker nur Daten gesendet. Es kam kein Statusbericht zurück. Es gab keine Tintenanzeige etc. Das kann bei deiner Steuerung ja auch der Fall sein.

Wenn die Sigmatek Steuerung nur Daten raussendet und keine Daten erwartet, dann sollte es kein Problem sein, einfach auf dem entsprechenden Port zu lauschen und zu empfangen.

Helmi 26. Mai 2012 09:13

AW: Druckerdaten über Netzwerk empfangen, wie?
 
Zitat:

Zitat von zeras;1168185[URL="http://www.sigmatek-automation.com/"
Sigmatek/[/URL]

Danke! - ich bin einfach Siemens-versaut :-)

zeras 26. Mai 2012 09:21

AW: Druckerdaten über Netzwerk empfangen, wie?
 
Zitat:

Zitat von bernau (Beitrag 1168187)
Welchen Drucker erwartet diese Sigmatek Steuerung.

Ich kann PCL3, PCL5 und EpsonFX wählen, wobei ich noch nicht weiß, ob es für EpsonFX überhaupt einen Netzwerkdrucker gibt.

creed steiger 26. Mai 2012 11:22

AW: Druckerdaten über Netzwerk empfangen, wie?
 
Im Prinzip kein Problem sowas hab ich schon mal mit Synapse gemacht.
Allerdings sind das dann nur Rohdaten die du abgreifst,die in ein Bild umzuwandeln könnte etwas Problematisch werden.

Ich schau am Montag nochmal auf der Arbeit nach dem Code.

Du könntest dir das hier mal anschauen:
http://blog.cyrtech.de/node/5
das kann sowas und noch einiges mehr.

das ist auch noch interessant

http://blog.cyrtech.de/node/24

http://blog.cyrtech.de/node/10

bernau 26. Mai 2012 12:29

AW: Druckerdaten über Netzwerk empfangen, wie?
 
Zitat:

Zitat von zeras (Beitrag 1168191)
Zitat:

Zitat von bernau (Beitrag 1168187)
Welchen Drucker erwartet diese Sigmatek Steuerung.

Ich kann PCL3, PCL5 und EpsonFX wählen, wobei ich noch nicht weiß, ob es für EpsonFX überhaupt einen Netzwerkdrucker gibt.

Du Empfängst die Raw-Daten und sendest die einfach "Raw" an den Drucker weiter. Nichts mit Windows-Druckertreiber und so.

Es gibt ne Unit, die nennt sich "RawPrint". Da schickst du einen Stream an einen Druckertreiber und dieser wird ohne Veränderung an den Drucker gesendet. Auch, wenn er sich irgendwo im Netz befindet.

zeras 27. Mai 2012 11:47

AW: Druckerdaten über Netzwerk empfangen, wie?
 
Zitat:

Zitat von creed steiger (Beitrag 1168206)
Allerdings sind das dann nur Rohdaten die du abgreifst,die in ein Bild umzuwandeln könnte etwas Problematisch werden.

Ich habe nun mittels TIdTCPServer die ersten Daten empfangen können. Es kommt am Ende zwar immer Socket Error 10054, aber es kommen erst mal Daten.
Das Umwandeln in ein Bild habe ich schon in einer anderen Anwendung drin. Dort empfange ich über die serielle Schnittstelle auch PCL5 Daten und am Ende kommt ein GIF raus. Hat viel Arbeit gekostet, geht aber erst mal.
Danke für eure Hinweise.

haentschman 27. Mai 2012 15:07

AW: Druckerdaten über Netzwerk empfangen, wie?
 
Zitat:

Es kommt am Ende zwar immer Socket Error 10054
...hast du bestimmt schon gelesen.
Zitat:

Connection reset by peer.

An existing connection was forcibly closed by the remote host. This normally results if the peer application on the remote host is suddenly stopped, the host is rebooted, the host or remote network interface is disabled, or the remote host uses a hard close (see setsockopt for more information on the SO_LINGER option on the remote socket). This error may also result if a connection was broken due to keep-alive activity detecting a failure while one or more operations are in progress. Operations that were in progress fail with WSAENETRESET. Subsequent operations fail with WSAECONNRESET.
...wahrscheinlich hört die Steuerung einfach auf zu senden ohne dies mitzuteilen. Schau mal, ob du am Ende deiner Daten ein Steuerzeichen findest was jedesmal identisch ist. Dann kannst du evt. darauf regieren.

zeras 27. Mai 2012 16:30

AW: Druckerdaten über Netzwerk empfangen, wie?
 
Zitat:

Zitat von haentschman (Beitrag 1168304)
...wahrscheinlich hört die Steuerung einfach auf zu senden ohne dies mitzuteilen. Schau mal, ob du am Ende deiner Daten ein Steuerzeichen findest was jedesmal identisch ist. Dann kannst du evt. darauf regieren.

Ich habe mir mal so grob die Daten angeschaut. Am Ende kommt zur Zeit immer #126 und das bei mehreren Versuchen. Mittendrin kommt öftern 1B, was auf den PCL Code hindeutet. Da sieht so aus, als wenn ich auf dem richtigen Weg bin.

Nur was kann ich machen, wenn die Steuerung einfach aufhört zu senden? Einfach ignorieren?
Ich kenne mich halt mit dem TCP Protokoll nicht aus.

haentschman 27. Mai 2012 17:08

AW: Druckerdaten über Netzwerk empfangen, wie?
 
Zitat:

Am Ende kommt zur Zeit immer #126
Ich interpretiere das so:
- die Steuerung sendet als "Abschluß" #126
- für den Server ist das ein ganz normales Zeichen
- Die Steuerung sendet nicht weiter --> 10054 weil der Server weiter "horcht"
- das #126 als "Ende" interpretieren und den Empfang beenden... wie auch immer das geht :zwinker:

zeras 27. Mai 2012 17:21

AW: Druckerdaten über Netzwerk empfangen, wie?
 
Wie es aussieht, hast du recht. Die Steuerung sendet einfach nicht weiter und dann kommt vom Server 10054, weil keine Daten mehr kommen. OK, das kann ich irgendwie abfangen.
Danke für die Hilfe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 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