Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Dateien drucken mit frei wählbarem Drucker

  Alt 9. Aug 2008, 19:49
Hallo mOfl,

entschuldige, aber Du hast eine etwas naive Vorstellung von Drucken. Im Prinzip läuft das immer so ab:
Daten -> Treiber -> Drucker
Das heißt Deine Daten werden durch einen Treiber so aufbereitet, das sie auf dem Drucker richtig ausgegeben werden. Dazu mußt Du dem Treiber gegenüber natürlich sagen, was Du für Daten drucken willst. Z.B. diese Zeile Fett wird in die notwendigen Steuerzeichen für den Drucker + Text ungesetzt. Die andere Möglichkeit hast Du schon angesprochen. Auf dem Canvas wird ein Bild gezeichnet (das auch wie Text aussehen kann) und das wird dann an den Drucker als Bild bzw. die notwendigen Steuerzeichen weitergereicht.

Die bekannte Methode
copy TEXT_DATEI.TXT LPT1:
funktioniert nur, weil die notwendigen Steuerzeichen CR LF schon enthalten sind. Und dann nur wenn die einzelnen Textzeilen schon an die maximale Druckbreite angepasst sind.

Wenn Du also beliebige Dateien ausdrucken willst hast Du 2 Möglichketen:
a) Die Datei unter Delphi einlesen, interpretieren, auf der Canvas darstellen und dann ausdrucken
b) wie Du schon angedeutet hast mit Hilfe von SHELLEXECUTE ein Interpreterprogramm aufrufen,daß dann auch den Ausdruck übernimmt. Dann ist die Druckeransteuerung allerdings von dem Interpreterprogramm abhängig.
Eine andere Version von b) ist z.B. die das füttern von Word mit Word-Dateien und dann das Anstoßen des Ausdrucks in Word, das läuft dann unter OLE.


Gruß
K-H

soweit ich weiß ist print im Prinzip das gleiche wie copy xxxx LPT1: nur nicht ganz so direkt, es wird auch der Spooler genutzt.

Au Mann, PS-Drucker verstehen natürlich nur PS, und GDI-Drucker auch nur GDI, also Copy ... bedingt natürlich eine Datei, die vom Drucker verstanden wird!
  Mit Zitat antworten Zitat