Erweiterte Drucktechniken

Adobe AIR 2 und höher

Ab Adobe AIR 2 hat die PrintJob-Klasse zusätzliche Eigenschaften und Methoden. Außerdem werden drei neue Klassen unterstützt: PrintUIOptions, PaperSize und PrintMethod. Diese Änderungen ermöglichen zusätzliche Arbeitsabläufe beim Drucken und bieten Autoren eine bessere Steuerung des Druckvorgangs. Zu den Änderungen zählen:

  • Dialogfelder für die Seiteneinrichtung: Sowohl standardmäßige als auch benutzerdefinierte Dialogfelder für die Seiteneinrichtung können angezeigt werden. Der Benutzer kann vor dem Drucken die Seitenbereiche, das Papierformat, die Ausrichtung und die Skalierung festlegen.

  • Druckansicht: Sie können einen Ansichtsmodus erstellen, der Papierformat, Ränder und die Position des Inhalts auf der Seite genau zeigt.

  • Eingeschränktes Drucken: Autoren können die Druckoptionen einschränken, wie beispielsweise den druckbaren Seitenbereich.

  • Qualitätsoptionen: Autoren können die Druckqualität für ein Dokument anpassen und Benutzern die Möglichkeit geben, die Auflösung und Farboptionen auszuwählen.

  • Mehrere Drucksitzungen: Eine einzelne PrintJob-Instanz kann nun für mehrere Drucksitzungen verwendet werden. Anwendungen können bei jeder Anzeige der Dialogfelder „Seite einrichten“ und „Drucken“ einheitliche Einstellungen bereitstellen.

Änderungen am Druckablauf

Der neue Arbeitsablauf beim Drucken setzt sich aus den folgenden Schritten zusammen:

  • new PrintJob() : Erstellt eine PrintJob-Instanz (oder verwendet eine vorhandene Instanz erneut). Zahlreiche neue PrintJob-Eigenschaften und -Methoden, wie beispielsweise selectPaperSize() , stehen vor dem Start des Druckauftrags oder während des Druckvorgangs zur Verfügung.

  • PrintJob.showPageSetupDialog() : Zeigt das Dialogfeld „Seite einrichten“ an, ohne einen Druckauftrag zu starten (optional).

  • PrintJob.start() oder PrintJob.start2() : Zusätzlich zur start() -Methode wird die start2() -Methode verwendet, um den Prozess für die Druckerwarteschlange einzuleiten. Mit der start2() -Methode können Sie festlegen, ob das Dialogfeld „Drucken“ angezeigt werden soll. Wenn ja, können Sie das Dialogfeld auch anpassen.

  • PrintJob.addPage() : Fügt dem Druckauftrag Inhalt hinzu. Dies hat sich im Vergleich mit dem vorhandenen Prozess nicht geändert.

  • PrintJob.send() oder PrintJob.terminate() : Sendet die Seiten an den ausgewählten Drucker oder beendet den Druckauftrag, ohne die Seiten zu senden. Druckaufträge werden als Reaktion auf einen Fehler beendet. Wenn eine PrintJob-Instanz beendet wurde, kann sie dennoch wieder verwendet werden. Bei der Wiederverwendung der PrintJob-Instanz werden die aktuellen Druckeinstellungen beibehalten, unabhängig davon, ob der Druckauftrag an den Drucker gesendet oder beendet wird.

Dialogfeld „Seite einrichten“

Die showPageSetupDialog() -Methode zeigt das Dialogfeld „Seite einrichten“ des Betriebssystems an, sofern von der aktuellen Umgebung unterstützt. Überprüfen Sie vor dem Aufruf dieser Methode immer die supportsPageSetupDialog -Eigenschaft. Ein einfaches Beispiel:

import flash.printing.PrintJob; 
     
var myPrintJob:PrintJob = new PrintJob(); 
//check for static property supportsPageSetupDialog of PrintJob class 
if (PrintJob.supportsPageSetupDialog) { 
    myPrintJob.showPageSetupDialog(); 
}

Die Methode kann wahlweise mit einer Eigenschaft der PrintUIOptions-Klasse aufgerufen werden, um zu steuern, welche Optionen im Dialogfeld „Seite einrichten“ angezeigt werden. Die minimale und maximale Seitenanzahl kann festgelegt werden. Mit dem folgenden Beispiel werden nur die ersten drei Seiten gedruckt:

import flash.printing.PrintJob; 
     
var myPrintJob:PrintJob = new PrintJob(); 
if (PrintJob.supportsPageSetupDialog) { 
    var uiOpt:PrintUIOptions = new PrintUIOptions(); 
    uiOpt.minPage = 1; 
    uiOpt.maxPage = 3; 
    myPrintJob.showPageSetupDialog(uiOpt); 
}

Ändern der Druckeinstellungen

Die Einstellungen für eine PrintJob-Instanz können jederzeit nach der Konstruktion der Instanz geändert werden. Die Einstellungen können zwischen addPage() -Aufrufen und nach dem Senden oder Beenden eines Druckauftrags geändert werden. Einige Einstellungen, wie beispielsweise die printer -Eigenschaft, gelten für den ganzen Druckauftrag, nicht nur für einzelne Seiten. Diese Einstellungen müssen vor einem Aufruf von start() oder start2() festgelegt werden.

Die selectPaperSize() -Methode kann aufgerufen werden, um das standardmäßige Papierformat in den Dialogfeldern „Seite einrichten“ und „Drucken“ festzulegen. Sie kann auch während eines Druckauftrags aufgerufen werden, um das Papierformat für einen Seitenbereich festzulegen. Sie wird mithilfe von Konstanten aufgerufen, die in der PaperSize -Klasse definiert sind, wie in diesem Beispiel, in dem ein Umschlag der Größe 10 ausgewählt wird:

import flash.printing.PrintJob; 
import flash.printing.PaperSize; 
     
var myPrintJob:PrintJob = new PrintJob(); 
myPrintJob.selectPaperSize(PaperSize.ENV_10);

Verwenden Sie die printer -Eigenschaft, um den Namen des Druckers für den aktuellen Druckauftrag abzurufen oder festzulegen. Standardmäßig ist sie auf den Namen des Standarddruckers eingestellt. Die printer -Eigenschaft hat den Wert null , wenn keine Drucker verfügbar sind oder wenn das Drucken vom System nicht unterstützt wird. Zum Ändern des Druckers rufen Sie zunächst die Liste der verfügbaren Drucker mithilfe der printers -Eigenschaft ab. Dies ist eine Vector-Eigenschaft, deren String-Elemente die verfügbaren Druckernamen sind. Stellen Sie die printer -Eigenschaft auf einen dieser Stringwerte ein, um den jeweiligen Drucker als aktiven Drucker festzulegen. Die printer -Eigenschaft eines aktiven Druckauftrags kann nicht geändert werden. Wenn Sie versuchen, die Eigenschaft nach einem erfolgreichen Aufruf von start() oder start2() und vor dem Senden oder Beenden des Druckauftrags zu ändern, schlägt der Vorgang fehl. Im folgenden Beispiel wird gezeigt, wie diese Eigenschaft festgelegt werden kann:

import flash.printing.PrintJob; 
     
var myPrintJob:PrintJob = new PrintJob(); 
myPrintJob.printer = "HP_LaserJet_1"; 
myPrintJob.start();

Mit der copies -Eigenschaft wird der Wert für die Anzahl der Exemplare abgerufen, der im Dialogfeld „Drucken“ des Betriebssystems festgelegt ist. Mit den Eigenschaften firstPage und lastPage wird der Seitenbereich abgerufen. Mit der orientation -Eigenschaft wird die Einstellung für die Papierausrichtung abgerufen. Diese Eigenschaften können festgelegt werden, um die Werte im Dialogfeld „Drucken“ außer Kraft zu setzen. Im folgenden Beispiel werden diese Eigenschaften festgelegt:

import flash.printing.PrintJob; 
import flash.printing.PrintJobOrientation; 
     
var myPrintJob:PrintJob = new PrintJob(); 
myPrintJob.copies = 3; 
myPrintJob.firstPage = 1; 
myPrintJob.lastPage = 3; 
myPrintJob.orientation = PrintJobOrientation.LANDSCAPE;

Die folgenden schreibgeschützten Einstellungen für PrintJob bieten nützliche Informationen zur aktuellen Druckereinrichtung:

  • paperArea : Die rechteckigen Grenzen des Druckmediums in Punkten.

  • printableArea : Die rechteckigen Grenzen des Druckbereichs in Punkten.

  • maxPixelsPerInch : Die tatsächliche Auflösung des aktuellen Druckers in Pixel pro Zoll.

  • isColor : Gibt an, ob der aktuelle Drucker den Farbdruck unterstützt (gibt true zurück, wenn der aktuelle Drucker den Farbdruck unterstützt).

Siehe Druckbeispiel: Seiteneinrichtung und Druckoptionen .