![]() |
Druckdatenstrom ?
Hallo,
folgendes Problem : Ich möchte einen Druckdatenstrom abfangen und diesen verändern. Verändern in dem Sinne das ich unter das zu druckende ein Formular legen möchte . So eine Art Kopfbogen also. Ist das irgendwie möglich ? Matthias |
Re: Druckdatenstrom ?
Hallo Matthias,
bei mir ist das eine Funktionalität des Druckers. Wenn dein Drucker das nicht beherrscht oder du vom Drucker unabhängig sein möchtest, dann ist vielleicht ein ![]() Grüße vom marabu |
Re: Druckdatenstrom ?
Hallöchen,
naja nicht wirklich, den hab ich schon probiert. Damit geht das nicht was ich machen muss. Also es steht irgendwo ein einfacher Rechner als Printserver. Darauf wird von allen Workstations gedruckt. Die Workstations geben als Drucker nur den Port an, also 192.168.100.10:lp0 ( lp0 MUSS die Freigabe sein !! ) Geht aus dem Programm nicht anders. Der Datenstrom wird dann an den Printserver gesendet und dort muss ein Formular unterlegt werden ( Briefkopf meinetwegen ) und dann wird erst gedruckt. Auf dem Printserver sind dann alle Drucker der "Firma" per Druckerfreigabe installiert. So soll es funktionieren. Wie kann ich das denn nur lösen ? Muss doch irgendwie gehen oder ? Matthias |
Re: Druckdatenstrom ?
Also das wird wircklich mit dem Drucker gemacht die meisten Grösseren Laserdrucker können das.
Ich habe das auch noch nicht anderes gesehen bis auf das die zu Druckende Software das selbst macht. |
Re: Druckdatenstrom ?
Hallöchen,
naja, der Drucker kann das schon, is ja ein Laserdrucker. Das Problem ist einen Datenstrom abzufangen ( kommt per 192.168.100.10:lp0 ) und dann diesen zu verändern ( ein Formular da drunter zu legen. Matthias |
Re: Druckdatenstrom ?
Hallööchen,
ich wärm das ganze nochmal auf. Vielleicht gibt es ja irgendwie die Möglichkeit den Datenstrom abzufangen und den zusammen mit einem Bild ( dem Formular was unter den geschriebenen Text soll ) zu drucken ? Also eigentlich 2 Bilder übereinander. Das Problem den Datenstrom erst mal abzufangen besteht allerdings immer noch. Vielleicht kann ja doch jemand helfen ? Matthias Ps.: Guten Rutsch ins neue Jahr |
Re: Druckdatenstrom ?
Müssen die Daten direkt an den Drucker? Ansonsten könntest du die Daten ja an einen Druckertreiber, der Bilder erstellt umleiten, das Bild mit dem Hintergrund zusammenfügen und dann erst an den eignetlichen Drucker schicken.
mfg, Ratte |
Re: Druckdatenstrom ?
Hallöchen,
also das Programm aus dem gedruckt werden MUSS erlaubt nur die Einrichtung eines Druckers an der wartesclange lp0. Also die zu druckenden Daten werden an (z.B.) 192.168.100.207:lp0 gesendet. Auf dem Rechner ist eine Warteschlange ( lp0 ) eingerichtet die den Datenstrom dann an den drucker sendet. Anders geht das leider Programmtechnisch nicht. Ich müsste also diese Warteschlange abfangen, das Formular drunterlegen und dann das ganze an den Drucker senden. Hoffe das war so verständlich ? Matthias |
Re: Druckdatenstrom ?
Muss das Bild unter alle Ausdrucke gelegt werden? Das habe ich nicht ganz sicher verstandne.
mfg, Ratte |
Re: Druckdatenstrom ?
Hallöchen,
ja, es gibt ein Formular ( is so eine Art Briefkopf , oben steht der Firmenname und unten so ein Impressum ) das muss unter jeden Druck unterlegt werden. Es gibt also auch nur dieses eine Formular. Matthias Ps.: Dank Dir |
Re: Druckdatenstrom ?
könnte man nicht den Bilddrucker in die Warteschlange lp0 legen und den Drucker irgendwo anders? Dein selbstgeschreibenes Programm wäre ja nicht auf lp0 angewiesen und könnte den Drucker auch an einer anderen Schnittstelle ansteuern. Und das Hauptprogramm liefert seine Daten weiter an lp0, dein Programm verändert die erstellte Bilddatei und gibt diese an den eigentlcihen Drucker weiter.
mfg, Ratte |
Re: Druckdatenstrom ?
Also normalerweise macht man das mit vorgedrucktem Briefpapier :mrgreen:
Als Tipp für ein mögliches Vorgehen: 1. Schreibe eine DLL, die du über SetWindowsHookEx in jeden Prozess einfügst. 2. Diese DLL prüft ob es sich um die betreffende Anwendung handelt. 3. Wenn ja, dann wird z.B. die Prozedur StartPage mit einem API-Hook umgeleitet. 4. Für diese DLL schreibst du eine kleine Dummy-Anwendung, die in Autostart aufgerufen wird (oder z.B. einen Dienst) In der umgeleiteten Routine (3) kannst du dann zunächst das originale StartDoc durchführen lassen und dann den Briefkopf in den DC zeichnen (zur Not einfach ein Metafile abspielen). Ein Beispiel für eine Injection-DLL findest du z.B. ![]() Funktionen für Code-Hooks gibt's z.B. von Brechi ( ![]() ![]() ![]() |
Re: Druckdatenstrom ?
Hallöchen,
ich danke Dir erst mal. Heut abend werde ich mich darum mal kümmern und mir die Links mal durchlesen. Schaff es jetzt leider nicht mehr. Ich meld mich sicher nochmal . Danek Dir erst mal !! Matthias |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:07 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 by Thomas Breitkreuz