Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie programmiere ich einen Drucker (https://www.delphipraxis.net/154890-wie-programmiere-ich-einen-drucker.html)

wicht 29. Sep 2010 20:24

AW: Wie programmiere ich einen Drucker
 
Naja, im MSDN steht, dass man immer StartDoc aufrufen sollte, wenn man druckt, und dort steht auch, dass man sein Programm so auslegen soll, dass diese Funktion lange braucht (z.B. wenn Netzwerkdrucker nicht reagiert o.Ä.) - und wenn das in den Programmen dann in einem seperaten Thread gemacht wird (klar, steht alles nicht fest), und man diese Funktion hookt, dann könnte es doch vielleicht hinhauen?
Kommt halt drauf an, ob der OP gerne friemeln will weil er Lust und Zeit dazu hat, oder ob er einfach nur irgendeine fertige Lösung haben will :-D

Bernerbaer 29. Sep 2010 20:28

AW: Wie programmiere ich einen Drucker
 
hier mal 2 komplett andere Denkansätze:

1. Ist eine Windows Domain vorhanden? Dann ginge es allenfalls über eine Script oder Programm mit den Policies

2. Kauf bzw installiere einen Drucker der einen Treiber zur Verfügung stelt, der dies von Haus aus kann (zb Canon bietet solche Drucker an)

jus 29. Sep 2010 21:57

AW: Wie programmiere ich einen Drucker
 
Zitat:

Zitat von Bernerbaer (Beitrag 1052864)
hier mal 2 komplett andere Denkansätze:

1. Ist eine Windows Domain vorhanden? Dann ginge es allenfalls über eine Script oder Programm mit den Policies

2. Kauf bzw installiere einen Drucker der einen Treiber zur Verfügung stelt, der dies von Haus aus kann (zb Canon bietet solche Drucker an)

Zitat:

Zitat von Sir Rufo (Beitrag 1052860)
...

Wenn die anderen Drucker-Treiber auf dem System nicht installiert sind ... Wie willst du dann darauf drucken?

...

Ich muß zugeben, das die Variante von Bernerbaer vermutlich eine sehr elegante Methode ist. Sir Rufo hat recht, man braucht einen Druckertreiber für den reellen Drucker, damit die Druckdaten gerastert werden können, außer der Drucker versteht PS oder man ist in der Lage direkt das Halftone Module des Druckerherstellers anzusteuern, was ich hier eher nicht annehme.

Zusätzlich würde ich einfach unter der Annahme, dass der Drucker im Netzwerk hängt und eine weitere Bastellösung hinzufügen:
Du hast 2 Druckertreiber installiert. Einen virtuellen Drucker von dir und den echten Druckertreiber von dem Drucker, dieser aber von den Anschlüssen absichtlich so konfiguriert wird, dass man über den nicht erfolgreich ausdrucken kann. Wenn einer über deinen den virtuellen Drucker druckt, dann schickst einfach den Druckjob weiter an den echten Druckertreiber und läßt diesen in echte Druckersteuerbefehle übersetzen, sprich rastern. Aber die Druckausgabe wird absichtlich in eine RAW-Rasterdatei umgeleitet. Diese RAW-Datei schickst du dann selber z.B. per Indy-LPR-Protokoll übers Netzwerk direkt zum Drucker.

Lg,
jus

Piethan 30. Sep 2010 06:32

AW: Wie programmiere ich einen Drucker
 
Morgen

Kann man nicht versuchen den Drucker nicht versuchen den Drucker bis zur Bezahlung offline zusetzen?
http://support.microsoft.com/kb/160456

Vor der Freigabe sollte der Spooler aufgeräumt werden, es kann ja sein, das einer keine Lust hatte
zu bezahlen.

Dann soll es noch die printui.dll geben, mit ihr soll der Drucker gesteuert werden können.

http://www.gruppenrichtlinien.de/ind...32_printui.htm
http://www.delphitricks.com/source-c...nterqueue.html

generic 30. Sep 2010 08:50

AW: Wie programmiere ich einen Drucker
 
Warum Drucker programmieren, wenn man nur die Daten abfangen muss?

Druckertreiber installieren und an einen TCP-Port hängen.
Dort an dem Port lauscht ein z.B. INDY-TCP-Server.
Die Daten brauchen dann nur genommen werden, um diese dann wirklich an den Drucker zu Streamen.

Die Druckdaten liegen meist in PS oder PCL vor. Also den Stream einfach nach "neue Seite" parsen - fertig.

p80286 30. Sep 2010 10:39

AW: Wie programmiere ich einen Drucker
 
Wenn ich mich recht erinnere war die ursprüngliche Aufgabenstellung
Für jede gedruckte Seite / Blatt einen Betrag x zu verlangen.
Wenn es sich um einen Netzwerkdrucker handelt, wird der wohl so intelligent sein, seinem Server mitzuteilen was für einen Zählerstand er hat. Ebenso haben Druckjobs im Netz meistens einen Namen. Also fragt man den Server was er drucken will, protokolliert den Zählerstand und gut ist.



Gruß
K-H

BUG 30. Sep 2010 12:40

AW: Wie programmiere ich einen Drucker
 
Ein ähnliches Problem wurde in diesem Thread behandelt.

Leider steht nicht mit drin, ob es funktioniert hat.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:28 Uhr.
Seite 2 von 2     12   

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