高度なプリント技術

Adobe AIR 2 以降

Adobe AIR 2 以降、PrintJob クラスにはプロパティおよびメソッドが追加されています。また、3 つのクラス(PrintUIOptions、PaperSize および PrintMethod)が追加でサポートされるようになりました。これらの変更によって、プリンターのワークフローを追加できるようになり、作成者はより詳細にプリント処理を制御できるようになりました。変更には、以下の内容が含まれます。

  • ページ設定ダイアログ:標準ダイアログとページ設定ダイアログの両方を表示できます。ユーザーは、印刷する前に、印刷範囲、用紙サイズ、用紙の方向および拡大/縮小を設定できます。

  • プリント表示:用紙サイズ、余白およびページ上のコンテンツの位置を正確に表示する表示モードを作成できます。

  • プリント制限:作成者は印刷可能なページの範囲などの印刷オプションを制限できます。

  • 品質オプション:作成者はドキュメントのプリント品質を調整でき、ユーザーは解像度とカラーオプションを選択できます。

  • 複数のプリントセッション:単一の PrintJob インスタンスで複数のプリントセッションを処理できるようになりました。ページ設定と印刷ダイアログが表示されるたびに、アプリケーションで一貫した設定を提供できます。

プリントワークフローの変更

新しいプリントワークフローは、次の 4 つの手順から構成されます。

  • new PrintJob() :PrintJob インスタンスを作成(または既存のインスタンスを再利用)します。PrintJob の新しいプロパティおよびメソッド( selectPaperSize() など)の多くは、プリントジョブの開始前またはプリント中に使用できます。

  • PrintJob.showPageSetupDialog() :(省略可)プリントジョブを開始せずに、ページ設定ダイアログを表示します。

  • PrintJob.start() または PrintJob.start2() start() メソッドに加え、 start2() メソッドを使用して、プリントスプール処理を開始できます。 start2() メソッドを使用すると、印刷ダイアログを表示して、表示時にダイアログをカスタマイズするかどうかを選択できます。

  • PrintJob.addPage() :コンテンツをプリントジョブに追加します。既存のプロセスからの変更はありません。

  • PrintJob.send() または PrintJob.terminate() :選択されたプリンターにページを送信するか、または送信せずにプリントジョブを強制終了します。プリントジョブはエラーに応答して強制終了されます。PrintJob インスタンスは、強制終了されても引き続き再利用できます。プリントジョブをプリンターに送信するか、強制終了するかに関わらず、PrintJob インスタンスを再利用するときは、現在の印刷設定が保持されます。

ページ設定ダイアログ

showPageSetupDialog() メソッドは、現在の環境でサポートされている場合、オペレーティングシステムのページ設定ダイアログを表示します。このメソッドは呼び出す前に、必ず、 supportsPageSetupDialog プロパティを確認してください。次に簡単な例を示します。

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

このメソッドは、必要に応じて、ページ設定ダイアログに表示するオプションを制御する PrintUIOptions クラス のプロパティと共に呼び出すことができます。ページ番号の最小値と最大値を設定できます。次の例では、最初の 3 ページの印刷に制限しています。

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); 
}

プリント設定の変更

PrintJob インスタンスの設定は、インスタンスの作成後、いつでも変更できます。例えば、 addPage() を次回呼び出すときや、プリントジョブが送信または強制終了された後などに、設定を変更できます。 printer プロパティなどの一部の設定は、個々のページではなく、プリントジョブ全体に適用されます。これらの設定は、 start() または start2() を呼び出す前に設定されている必要があります。

selectPaperSize() メソッドは、ページ設定ダイアログおよび印刷ダイアログで、デフォルトの用紙サイズを設定するために呼び出すことができます。プリントジョブ中に呼び出して、特定のページ範囲の用紙サイズを設定することもできます。このメソッドは PaperSize クラスで定義されている定数を使用して呼び出されます。次の例では、#10 封筒サイズが選択されています。

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

printer プロパティを使用して、現在のプリントジョブのプリンター名を取得または設定します。デフォルトで、このプロパティは既定のプリンターの名前に設定されます。利用可能なプリンターがないか、システムでプリントがサポートされていない場合、 printer プロパティは null です。プリンターを変更するには、最初に printers プロパティを使用して利用可能なプリンターの一覧を取得します。このプロパティは String エレメントが利用可能なプリンター名であるベクターです。 printer プロパティをこれらの String 値のいずれかに設定して、対象のプリンターをアクティブにします。アクティブな印刷ジョブの printer プロパティは変更できません。 start() または start2() が正常に呼び出された後で、ジョブが送信または強制終了される前にこのプロパティを変更しようとすると、その操作は失敗します。このプロパティの設定例を次に示します。

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

copies プロパティは、オペレーティングシステムの印刷ダイアログの部数の値を取得します。 firstPage lastPage のプロパティによって、ページ範囲を取得します。 orientation プロパティは、用紙の向きの設定を取得します。これらのプロパティを設定すると、印刷ダイアログの値を上書きできます。これらのプロパティの設定例を次に示します。

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;

PrintJob に関連付けられた次の読み取り専用の設定は、現在のプリンター設定に関する有用な情報を提供します。

  • paperArea :プリンター用メディアの長方形範囲(ポイント単位)

  • printableArea :印刷可能な領域の長方形範囲(ポイント単位)

  • maxPixelsPerInch :現在のプリンターの物理的な解像度(ピクセル/インチ)

  • isColor :現在のプリンターのカラー印刷機能の有無(現在のプリンターがカラー印刷可能な場合、 true を返します)

プリントの例:ページ設定とプリントオプション を参照してください。