Lade...
 

Drucken (ASCII)

Drucken

Bei dieser Druckvariante wird ein ClassiX-Dokument erzeugt und mit Daten

gefüllt. Diese sind üblicherweise einfache Texte und werden zum schnellen Druck von Listen oder einfachen Dokumenten verwendet. Da solche Dokumente früher häufig einfach aus direkt positioniertem Text (einfaches Alphabet, sogenannte ASCII-Zeichen) bestand, hat sich der Begriff "ASCII-Druck" eingebürgert. Tatsächlich lassen sich mit dieser Druckvariante aber neben Linien und Grafiken auch nicht-ASCII-Texte drucken. Dadurch, dass zusätzlich beliebige Fonts ausgewählt werden können

lassen sich auch sehr einfach Barcodes ausgeben.

Eines der Hauptmerkmale dieser Art zu Drucken besteht darin, sehr einfach ein

Fenster (oder Teile davon) auf einen Drucker auszugeben. Dabei unterscheidet

sich der ASCII-Druck von einem Screenshot u.a. dadurch, dass

  • alle Daten eines Widgets gedruckt werden (also z.B. alle Zeilen einer Listbox, auch die, die nicht am Bildschirm angezeigt werden),
  • die Ausgabe als reiner Text Text erfolgt (Buttons, Scrollbars, etc. werden also nicht als Widgets dargestellt)
  • das entstehende Dokument weiter bearbeitet werden kann (indem z.B. weiterer Text oder Grafiken eingefügt wird)

Die Ausgabe von Drucklisten wird durch ein Document-Objekt gesteuert, das zugleich als

Puffer zwischen den InstantView®-Anweisungen und dem Druckausgabekanal des jeweiligen Betriebssystems steht. Das Document-Objekt kann die Information der gesamten Druckliste halten - die Ausgabe wird explizit mit PrintDocument angestoßen. Außerdem ist eine Vorschau auf dem Bildschirm möglich. Bei sehr großen Listen ist dieser Modus uneffektiv oder nicht durchführbar: Hier werden die Daten um eine vorgegebene Anzahl von k Druckseiten verzögert an den Ausgabekanal weitergegeben. Je nachdem, welcher Modus benutzt wird, kann innerhalb der gesamten Liste oder innerhalb der letzten k Seiten frei positioniert werden. Zur gleichen Zeit können mehrere Document-Objekte existieren, d.h. man kann verschiedene Drucklisten simultan bearbeiten.

 

Der einfache Ablauf von der Erstellung eines Dokuments beim Drucken eines Dokuments besteht in der Regel aus folgenden Schritten:

  1. Auswahl des Druckers und der Druckereinstellungen (SetPrinter, Printer-Manager)
  2. Erzeugen eines Dokumentes (Document)
  3. Setzen der Dokument-Einstellungen (SetParameter)
  4. Bearbeiten des Dokuments:
  5. Ausgabe des Dokuments: Vorschau mit ShowDocument,

    Drucken mit PrintDocument, Export in eine Text-Datei mit ExportDocument.

    Zusätzlich kann das Dokument in eine emf-Datei geschrieben werden (CreateEmfFiles)

SetPrinter ist eine sehr einfache Art der

Druckerauswahl: Ein Druckdialog geht auf und der ausgewählte Drucker mit seinen Eigenschaften wird als Standarddrucker verwendet. Soll der Druckerdialog mit Vorgaben belegt werden oder die Auswahl des Dialogs gespeichert und bearbeitet werden (z.B. um Druckereinstellungen nur für die Titelseite auszuwählen), muss die Funktion SelectPrinterWithPresets

verwendet werden.

Um den Druckvorgang besser beeinflussen zu können kann während der

Erstellung des Dokuments (Schritt 4) auf das Druck-Ergebnis mithilfe der Funktionen von CXS_DOCUMENT Einfluss genommen werden. Dadurch ist es möglich z.B. verschiedene Seiten automatisch auf unterschiedliche Drucker auszugeben oder das Seitenformat

(z.B. Ränder oder Orientation) für bestimmte Seiten zu ändern.

Folgende Klassen gibt es, mit denen das Drucken gesteuert werden kann:

  • CXS_PRINTER_MANAGER: Wird verwendet um die installierten Drucker abzufragen
  • CX_PRINTER: Repräsentieren die installierten Drucker
  • CX_PRINTER_PROPERTIES: Entsprechen den Einstellungen eines Druckers (z.B. Auflösung, Schacht, Anzahl Kopien, ...)
  • CX_PAGE_PROPERTIES: Entsprechen den Drucker-unabhängigen Seiteneinstellungen (z.B. Papierformat, Ränder, ...)
  • CXS_DOCUMENT: Das zu druckende Dokument.

    Dieses Dokument wird mit zu druckenden Daten gefüllt (Text, Bilder, Widgets, ...). Seitenweise können Einstellungen von Druckern, dessen Einstellungen

    und Seiteneigenschaften gesetzt werden (SetPagePropertiesAndPrinter).

Als Alternative zum Drucken mit dem Befehl PrintDocument kann mit CreatePrinterJob auch ein Druck-Job verwendet werden. Dieser lässt sich etwas genauer steuern.

Siehe auch: