Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Drucken ohne Seitenvorschub (TPrinter-Objekt) (https://www.delphipraxis.net/17416-drucken-ohne-seitenvorschub-tprinter-objekt.html)

suaithai 5. Mär 2004 09:39


Drucken ohne Seitenvorschub (TPrinter-Objekt)
 
Hallo Leute.

Bei einem Analysen-Programm, welches regelmässig informationen über eine Com-Schnittstelle von einem Analysenautomat erhält. Bisher habe ich alle Analysen-Records gesammelt und am Ende der Analyse über das TPrinter-Objekt gedruckt. Das hat auch ganz schön gefunzelt, nun ist aber vom Kunden der Wunsch aufgetreten, dass er nach jedem Analysen-Eingang die Werte einzeilig auf seinen EPSON LQ-1170 Endlos-Nadeldrucken ausgedruckt haben möchte, und nicht erst am Ende.

Wenn ich das TPrinter-Objekt verwende, wo ich auch schön Schriftart und Schriftgrösse einstellen kann, wird nach jedem Printer.EndDoc beim Drucker einen Seitenvorschub gemacht. (Wäre schon ein bisschen übertrieben 1 Seite Papier für eine Zeile).

Kennt jemand eine Möglichkeit, den Seitenvorschub nach dem EndDoc zu unterdrücken? :gruebel:

Vielen Dank für Eure Hilfe

Gruss Suaithai

Brüggendiek 5. Mär 2004 21:27

Re: Drucken ohne Seitenvorschub (TPrinter-Objekt)
 
Hallo suaithai!

Da wird wohl TPrinter der falsche Ansatz sein.
Mit TPrinter benutzt Du ja einen Windows-Drucker. Da kümmert sich das OS um die Ausgabe - also auch darum, daß die Schrift richtig in Pixel umgesetzt wird. Zum Schluß wird dann das Bild aus dem Speicher ausgegeben.

Vorteil: Da die Ausgabe grafisch erfolgt, sieht das im Wesentlichen auf allen Druckern gleich aus.
Nachteil: Die grafische Ausgabe belastet den Speicher des Rechners und erfordert mehr Datenübertragung zum Drucker. Außerdem geht die Druckausgabe nur seitenweise.

Die Lösung Deines Problems kann nur die Textausgabe sein. Dabei werden die Buchstaben direkt zum Drucker gesendet.
Nachteil: Du mußt die Druckersteuerzeichen selber korrekt erzeugen (Schriftart, Fett, Kursiv, Schriftgröße) und bist an die Hardware-Zeichensätze gebunden.

Realisierung: entweder die Daten direkt auf dem Druckerport ausgeben (geht nur unter DOS, also Win9x oder ME; unter NT/XP nur mit einer Treiber-DLL - wurde hier oft genug durchgekaut) - oder versuchen, eine Textdatei mit Namen "LPT1" zu öffnen, mit Writeln eine Zeile zu schreiben und sicherheitshalber mit Flush den Puffer ausgeben.

Diese Lösungen erfordern natürlich einen Drucker! Die heute üblichen Matrix-Plotter (geben Zeichnungen punktweise aus), die in den mit "Drucker" beschrifteten Kartons stecken, sind ungeeignet. Bei Nadeldruckern hast Du in der Regel wirklich einen Drucker.

Gruß

Dietmar Brüggendiek

SirThornberry 5. Mär 2004 21:50

Re: Drucken ohne Seitenvorschub (TPrinter-Objekt)
 
eventuell könntest du ja dem drucker ein SonderPapierformat zuordnen, mit Höhe 1 cm so das der Seitenvorschub nur 1 cm schiebt


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:01 Uhr.

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