パッケージ | flash.printing |
クラス | public class PrintJob |
継承 | PrintJob EventDispatcher Object |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
モバイルブラウザーのサポート:このクラスはモバイルブラウザーではサポートされません。
AIR プロファイルのサポート:この機能はすべてのデスクトップオペレーティングシステムでサポートされますが、モバイルデバイスまたは AIR for TV デバイスではサポートされません。PrintJob.isSupported
プロパティを使用して、サポートされているかどうかを実行時にテストすることができます。複数のプロファイル間での API サポートについて詳しくは、AIR プロファイルのサポートを参照してください。
印刷ジョブを作成するには、PrintJob()
コンストラクターを使用します。
さらに、PrintJob クラスのプロパティを使用すると、ユーザーのプリンター設定(用紙の高さ、幅、イメージの向きなど)にアクセスすることができ、プリンターの設定に合わせて Flash のコンテンツを動的にフォーマットするようにドキュメントを設定することができます。
注意:ActionScript 3.0 では、ActionScript の以前のバージョンと同様に、PrintJob オブジェクトが単一フレームに制限されません。ただし、印刷ダイアログボックスで「OK」ボタンをクリックすると印刷ステータス情報が表示されるため、ページをスプーラに送信したら直ちに PrintJob.addPage()
および PrintJob.send()
を呼び出す必要があります。PrintJob.send()
呼び出しの格納されたフレームに遅延が到達すると、印刷処理が遅延します。
また、次の間隔には、15 秒のスクリプトのタイムアウト制限が適用されます。
-
PrintJob.start()
および 1 つ目のPrintJob.addPage()
-
PrintJob.addPage()
および 2 つ目のPrintJob.addPage()
- 最後の
PrintJob.addPage()
およびPrintJob.send()
上記の間隔のいずれかが 15 秒以上である場合、次に PrintJob インスタンスの PrintJob.start()
を呼び出したときに false
が返されます。また、次に PrintJob インスタンスの PrintJob.addPage()
を呼び出したときに、Flash Player または Adobe AIR からランタイム例外がスローされます。
プロパティ | 定義元 | ||
---|---|---|---|
active : Boolean [静的] [読み取り専用]
印刷ジョブが現在アクティブであるかどうかを示します。 | PrintJob | ||
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
copies : int
それ以降に印刷ジョブに追加されたページについて、印刷システムが印刷する部数。 | PrintJob | ||
firstPage : int [読み取り専用]
オペレーティングシステムの印刷ダイアログに入力された、印刷範囲の最初のページを示すページ番号です。 | PrintJob | ||
isColor : Boolean [読み取り専用]
現在の印刷設定で選択されているプリンターで、カラー(true)とグレースケール(false)のどちらを使用して印刷するかを示します。 | PrintJob | ||
isSupported : Boolean [静的] [読み取り専用]
PrintJob クラスが現在のプラットフォームでサポートされているか(true)、サポートされていないか(false)を示します。 | PrintJob | ||
jobName : String
印刷ジョブの名前またはタイトルです。 | PrintJob | ||
lastPage : int [読み取り専用]
オペレーティングシステムの印刷ダイアログに入力された、印刷範囲の最後のページを示すページ番号です。 | PrintJob | ||
maxPixelsPerInch : Number [読み取り専用]
選択したプリンターの ppi(ピクセル/インチ)単位での実際の解像度。 | PrintJob | ||
orientation : String
印刷するイメージの向きです。 | PrintJob | ||
pageHeight : int [読み取り専用]
ページ上で実際に印刷可能な領域の中央に配置できる最大領域の高さ(ポイント単位)。 | PrintJob | ||
pageWidth : int [読み取り専用]
ページ上で実際に印刷可能な領域の中央に配置できる最大領域の幅(ポイント単位)。 | PrintJob | ||
paperArea : Rectangle [読み取り専用]
プリンターメディアの境界です(ポイント単位)。 | PrintJob | ||
paperHeight : int [読み取り専用]
用紙全体の高さ(ポイント単位)です。 | PrintJob | ||
paperWidth : int [読み取り専用]
用紙全体の幅(ポイント単位)です。 | PrintJob | ||
printableArea : Rectangle [読み取り専用]
プリンターメディアの印刷可能範囲の境界です(ポイント単位)。 | PrintJob | ||
printer : String
現在の印刷ジョブに使用されるプリンターを取得または設定します。 | PrintJob | ||
printers : Vector.<String> [静的] [読み取り専用]
使用可能なプリンターのリストを、String 名の値として提供します。 | PrintJob | ||
supportsPageSetupDialog : Boolean [静的] [読み取り専用]
Flash ランタイム環境で個別のページ設定ダイアログがサポートされるかどうかを示します。 | PrintJob |
メソッド | 定義元 | ||
---|---|---|---|
PrintJob()
ページを印刷できる PrintJob オブジェクトを作成します。 | PrintJob | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。 | EventDispatcher | ||
addPage(sprite:Sprite, printArea:Rectangle = null, options:PrintJobOptions = null, frameNum:int = 0):void
指定の Sprite オブジェクトを 1 ページとして印刷スプーラに送ります。 | PrintJob | ||
イベントをイベントフローに送出します。 | EventDispatcher | ||
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。 | EventDispatcher | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
EventDispatcher オブジェクトからリスナーを削除します。 | EventDispatcher | ||
用紙サイズを設定します。 | PrintJob | ||
start() または start2() メソッドおよび addPage() メソッドの呼び出しに成功した後、スプールされたページをプリンターに送信します。 | PrintJob | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
現在の環境でサポートされている場合、オペレーティングシステムのページ設定ダイアログを表示します。 | PrintJob | ||
オペレーティングシステムの印刷ダイアログボックスを表示し、スプールを開始します。 | PrintJob | ||
必要に応じて、オペレーティングシステムの印刷ダイアログボックスを表示してスプールを開始し、PrintJob の読み取り専用プロパティ値を編集することもできます。 | PrintJob | ||
印刷ジョブが送信されずに終了することを通知します。 | PrintJob | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object | ||
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。 | EventDispatcher |
active | プロパティ |
active:Boolean
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2 |
印刷ジョブが現在アクティブであるかどうかを示します。次の 2 つの状況のいずれかで、印刷ジョブがアクティブ(プロパティ値が true
)です。
- ページ設定ダイアログまたは印刷ダイアログが表示されている。
- 戻り値
true
によって、start()
またはstart2()
メソッドが呼び出し済みであり、かつsend()
またはterminate()
メソッドが呼び出されていない場合。
このプロパティが true
の場合に、showPageSetupDialog()
、start()
、または start2()
メソッドを呼び出すと、ランタイムによって例外がスローされます。
実装
public static function get active():Boolean
関連する API エレメント
copies | プロパティ |
firstPage | プロパティ |
isColor | プロパティ |
isSupported | プロパティ |
jobName | プロパティ |
jobName:String
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2 |
印刷ジョブの名前またはタイトルです。ジョブ名は、通常は印刷キュー内にあるジョブのタイトルとして、またはファイルに出力されるジョブのデフォルト名として、オペレーティングシステムによって使用されます。
start()
または start2()
を呼び出さず、プロパティの値も設定していなかった場合、このプロパティの値は null
になります。
PrintJob インスタンスで実行する各印刷ジョブに対して、start()
または start2()
メソッドを呼び出す前にこのプロパティを設定します。
デフォルト値: null
。
実装
public function get jobName():String
public function set jobName(value:String):void
例外
IllegalOperationError — active プロパティが true の場合に、コードがプロパティを設定しようと試みた場合。
|
lastPage | プロパティ |
maxPixelsPerInch | プロパティ |
maxPixelsPerInch:Number
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2 |
選択したプリンターの ppi(ピクセル/インチ)単位での実際の解像度。値は、オペレーティングシステムによってレポートされる現在の印刷設定に応じて計算されます。
解像度を特定できない場合、値は標準のデフォルト値になります。デフォルト値は Linux では 600 ppi で、Mac OS では 360 ppi です。Windows では、プリンターの解像度は常に取得できるので、デフォルト値は必要ありません。
実装
public function get maxPixelsPerInch():Number
orientation | プロパティ |
orientation:String
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 9 - read only, AIR 1.0 - read only, AIR 2 - read-write |
印刷するイメージの向きです。指定可能な値は、PrintJobOrientation クラスの定数として定義されています。
注意:ARI 2 以降では、印刷ジョブを開始する前にこのプロパティを設定し、ページ設定ダイアログと印刷ダイアログでのデフォルトの向きを設定します。start()
または start2()
を呼び出した後、印刷ジョブの進行中にこのプロパ ィを設定し、ジョブ内のページ範囲の向きを設定します。
実装
public function get orientation():String
public function set orientation(value:String):void
関連する API エレメント
pageHeight | プロパティ |
pageHeight:int
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9. |
ページ上で実際に印刷可能な領域の中央に配置できる最大領域の高さ(ポイント単位)。ユーザーが設定した余白は含みません。このプロパティは、PrintJob.start()
メソッドの呼び出し後にのみ使用可能になります。
注意:AIR 以降では、このプロパティの使用は避けてください。代わりに、printableArea
を使用してください。これは、印刷可能領域を少数(ポイント単位)で測定し、印刷可能領域からはみ出した部分について正確に記述します。
実装
public function get pageHeight():int
関連する API エレメント
pageWidth | プロパティ |
pageWidth:int
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 9, AIR 1.0 |
ページ上で実際に印刷可能な領域の中央に配置できる最大領域の幅(ポイント単位)。ユーザーが設定した余白は含みません。このプロパティは、PrintJob.start()
メソッドの呼び出し後にのみ使用可能になります。
注意:AIR 以降では、このプロパティの使用は避けてください。代わりに、printableArea
を使用してください。これは、印刷可能領域を少数(ポイント単位)で測定し、印刷可能領域からはみ出した部分について正確に記述します。
実装
public function get pageWidth():int
関連する API エレメント
paperArea | プロパティ |
paperHeight | プロパティ |
paperWidth | プロパティ |
printableArea | プロパティ |
printer | プロパティ |
printer:String
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2 |
現在の印刷ジョブに使用されるプリンターを取得または設定します。setter に渡され、getter から返される String は、printers()
メソッドから返された Array 内のいずれかのストリングに一致します。デフォルトプリンターを使用することを示すには、値を null
に設定します。デフォルトプリンターを特定できないオペレーティングシステム上では、このプロパティ値は null
です。
import flash.printing.PrintJob; var myPrintJob:PrintJob = new PrintJob(); myPrintJob.printer = "HP_LaserJet_1"; myPrintJob.start();
このプロパティの値を設定すると、直ちにプリンターの選択が実行されます。プリンターの選択に失敗した場合、このプロパティの値は以前の値にリセットされます。このプリンター値の設定が成功したかどうかは、値の設定を試行した後に値を読み取り、設定した値と読み取った値が一致することを確認することにより、判別できます。
アクティブな印刷ジョブの printer
プロパティは変更できません。start()
または start2()
メソッドの呼び出しに成功した後、send()
または terminate()
の呼び出し前にこの値を変更しようとすると、失敗します。
実装
public function get printer():String
public function set printer(value:String):void
printers | プロパティ |
printers:Vector.<String>
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2 |
使用可能なプリンターのリストを、String 名の値として提供します。リストは事前に計算済みのものではなく、この関数が呼び出されたときに作成されます。使用可能なプリンターがない場合、またはシステムが印刷をサポートしていない場合、値は null
を返します。システムで印刷をサポートしているが、プリンターのリストを返せない場合は、戻り値は 1 個の要素を持つ Vector になります(length
プロパティは 1 です)。この場合、この 1 個の要素は実際のプリンター名を表すか、プリンター名が特定できない場合はデフォルトのプリンター名を表します。
実装
public static function get printers():Vector.<String>
supportsPageSetupDialog | プロパティ |
PrintJob | () | コンストラクター |
public function PrintJob()
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
ページを印刷できる PrintJob オブジェクトを作成します。PrintJob オブジェクトを作成したら、PrintJob.start()
、PrintJob.addPage()
、PrintJob.send()
の順にメソッドを使用して、プリンターに印刷ジョブを送信します。
例えば、次のコードに示すように、myPrintJob.addPage()
メソッド呼び出しの [params]
プレースホルダーテキストをカスタムパラメーターに置き換えることができます。
// create PrintJob object var myPrintJob:PrintJob = new PrintJob(); // display Print dialog box, but only initiate the print job // if start returns successfully. if (myPrintJob.start()) { // add specified page to print job // repeat once for each page to be printed try { myPrintJob.addPage([params]); } catch(e:Error) { // handle error } try { myPrintJob.addPage([params]); } catch(e:Error) { // handle error } // send pages from the spooler to the printer, but only if one or more // calls to addPage() was successful. You should always check for successful // calls to start() and addPage() before calling send(). myPrintJob.send(); }
AIR 2 以降では、複数の PrintJob インスタンスを作成して使用できます。PrintJob インスタンスに設定されたプロパティは、印刷の完了後も保持されます。これにより、アプリケーション内の別のコンテンツに対して異なる印刷環境設定を適用する一方で、PrintJob インスタンスを再利用し、ユーザーによって選択された印刷環境設定を保持することができます。Flash Player および AIR 2 より前のバージョンの AIR では、最初の PrintJob オブジェクトがまだアクティブなときには、2 つ目の PrintJob オブジェクトを作成できません。1 つ目の PrintJob オブジェクトがアクティブであるときに new PrintJob()
を呼び出して 2 つ目の PrintJob オブジェクトを作成しようとしても、2 つ目の PrintJob オブジェクトは生成されません。そのため、2 つ目の PrintJob を作成する前に myPrintJob
値を確認できます。
例外
IllegalOperationError — Flash Player および AIR 2 より前のバージョンの AIR では、別の PrintJob オブジェクトがまだアクティブな場合に例外がスローされます。
|
関連する API エレメント
addPage | () | メソッド |
public function addPage(sprite:Sprite, printArea:Rectangle = null, options:PrintJobOptions = null, frameNum:int = 0):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9. |
指定の Sprite オブジェクトを 1 ページとして印刷スプーラに送ります。このメソッドを使用する前に、PrintJob オブジェクトを作成し、start()
または start2()
を使用する必要があります。次に、印刷ジョブに対して addPage()
を 1 回または複数回呼び出した後、send()
を使用して、スプールしたページをプリンターに送信します。つまり、PrintJob オブジェクトを作成したら、start()
、start2()()
、addPage()
、send()
の順にメソッドを使用して、プリンターに印刷ジョブを送信します。start()
を 1 回呼び出した後、addPage()
を複数回呼び出して、1 回の印刷ジョブで複数のページを印刷できます。
addPage()
によって Flash Player が例外をスローした場合(start()
を呼び出していなかった場合や、ユーザーが印刷ジョブをキャンセルした場合など)は、それ以降の addPage()
の呼び出しはすべて失敗します。ただし、それ以前の addPage()
の呼び出しが成功していれば、最後に send()
コマンドを実行することで、スプールされていたすべてのページがプリンターに送られます。
印刷ジョブで addPage()
操作の完了に 15 秒以上かかる場合、Flash Player は、次回 addPage()
が呼び出されたときに例外をスローします。
printArea
パラメーターの値を渡すと、printArea
矩形の x
座標と y
座標が、ページの印刷可能領域の左上隅(0, 0 座標)にマップされます。読み取り専用プロパティ pageHeight
と pageWidth
は、start()
によって設定された印刷可能領域を示します。印刷結果はページ上の印刷可能領域の左上隅を基準に整列されるので、printArea
で定義した領域が用紙上の印刷可能領域よりも大きい場合は、printArea
で定義した領域の右側または下側の部分(またはその両方)は切り取られることがあります。Flash Professional では、printArea
の値を指定しない場合にステージが印刷可能領域よりも大きいと、同様の切り取りが発生します。Flex または Flash Builder では、printArea
の値を指定しない場合にスクリーンが印刷可能領域よりも大きいと、同様の切り取りが発生します。
印刷前に Sprite オブジェクトを拡大/縮小するには、このメソッドを呼び出す前に拡大 / 縮小のプロパティ(flash.display.DisplayObject.scaleX
および flash.display.DisplayObject.scaleY
を参照)を設定します。印刷後、これらのプロパティを元の値に戻します。Sprite オブジェクトの拡大 / 縮小は、printArea
とは無関係です。つまり、サイズが 50 × 50 ピクセルの領域を印刷するよう指定した場合、2500 ピクセルが印刷されます。Sprite オブジェクトを拡大 / 縮小している場合、その設定を反映してプリント結果は伸縮しますが、プリントの対象となる 2500 個のピクセルは変わりません。
Flash Player の印刷機能は、PostScript プリンターと非 PostScript プリンターをサポートしています。非 PostScript プリンターでは、ベクターはビットマップに変換されます。
パラメーター
sprite:Sprite — 印刷するコンテンツが含まれている Sprite。
| |
printArea:Rectangle (default = null ) — 印刷する領域を指定する Rectangle オブジェクトです。
矩形の幅と高さはピクセル値です。プリンターでは、印刷用の測定単位としてポイントを使用します。ポイントは物理的な固定サイズ(1/72 インチ)ですが、画面用のピクセル深度のサイズは画面の解像度によって異なります。そのためピクセルとポイントの間の変換レートは、プリンターの設定、および Sprite が伸縮されているかどうかによって決まります。72 ピクセル幅の伸縮されていない Sprite は、用紙上では 1 インチ幅で印刷されます。1 ポイントは 1 ピクセルに相当し、画面の解像度とは無関係です。 インチおよびセンチメートルと、ポイントおよび twip(1/20 ポイント)との間には、次の等式が成り立ちます。
| |
options:PrintJobOptions (default = null ) — ベクターとビットマップのどちらで印刷するかを指定する、オプションのパラメーター。デフォルト値は null で、これはベクター形式を示します。sprite をビットマップとして印刷するには、PrintJobOptions オブジェクトの printAsBitmap プロパティを true に設定します。printAsBitmap を true に設定するかどうかを決めるときには、次の項目に留意してください。
| |
frameNum:int (default = 0 ) — 印刷する MovieClip オブジェクトのフレームを指定する数値。これはオプションです。frameNum を渡しても、そのフレーム上の ActionScript は呼び出されません。このパラメーターを省略し、かつ sprite パラメーターが MovieClip オブジェクトである場合は、sprite 内の現在のフレームが印刷されます。
|
例外
Error — start() を呼び出さなかった場合、またはユーザーが印刷ジョブをキャンセルした場合、例外がスローされます。
|
関連する API エレメント
selectPaperSize | () | メソッド |
public function selectPaperSize(paperSize:String):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2 |
用紙サイズを設定します。paperSize
パラメーターとして指定できる値は、PaperSize クラスの定数です。このメソッドを呼び出すと、ページ設定ダイアログまたは印刷ダイアログでユーザーが用紙サイズを選択した場合と同じように、印刷設定に影響します。
このメソッドは、いつでも呼び出すことができます。このメソッドは、ページ設定ダイアログと印刷ダイアログでデフォルトの用紙サイズを設定するジョブを開始する前に呼び出します。このメソッドは、印刷ジョブの進行中に呼び出して、ジョブ内のページ範囲に対する用紙サイズを設定します。
import flash.printing.PrintJob; import flash.printing.PaperSize; var myPrintJob:PrintJob = new PrintJob(); myPrintJob.selectPaperSize(PaperSize.ENV_10);
パラメーター
paperSize:String — 印刷ジョブのそれ以降のページに対して使用される用紙サイズ。
|
例外
ArgumentError — paperSize パラメーターが、PaperSize クラスで定義された指定可能な値の 1 つではない場合。
|
関連する API エレメント
send | () | メソッド |
public function send():void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9. |
start()
または start2()
メソッドおよび addPage()
メソッドの呼び出しに成功した後、スプールされたページをプリンターに送信します。
start()
または start2()
メソッドへの呼び出しが失敗した場合、または addPage()
メソッドへの呼び出しが例外をスローした場合、このメソッドは成功しません。エラーを回避するには、このメソッドを呼び出す前に、start()
または start2()
メソッドが true
を返し、addPage()
例外がある場合はそれをキャッチしていることを確認します。次の例では、このメソッドを呼び出す前にエラーを適切に確認する方法について説明します。
var myPrintJob:PrintJob = new PrintJob(); if (myPrintJob.start()) { try { myPrintJob.addPage([params]); } catch(e:Error) { // handle error } myPrintJob.send(); }
関連する API エレメント
showPageSetupDialog | () | メソッド |
public function showPageSetupDialog():Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2 |
現在の環境でサポートされている場合、オペレーティングシステムのページ設定ダイアログを表示します。ページ設定がサポートされているかどうかを確認するには、supportsPageSetupDialog
プロパティを使用します。
import flash.printing.PrintJob; var myPrintJob:PrintJob = new PrintJob(); if (myPrintJob.supportsPageSetupDialog) { myPrintJob.showPageSetupDialog(); }
Boolean — ページ設定ダイアログで「OK」を選択した場合には、true 。これは、一部の PrintJob プロパティが変更された可能性があることを示します。ユーザーがページ設定ダイアログで「キャンセル」をクリックした場合は、false を返します。
|
例外
IllegalOperationError — システムでページ設定がサポートされない場合。ページ設定がサポートされているかどうかを確認するには、supportsPageSetupDialog プロパティを使用します。
| |
IllegalOperationError — 任意の印刷ジョブ(実行中のジョブも含む)がアクティブである場合。
|
関連する API エレメント
start | () | メソッド |
public function start():Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9., Flash Player 9. |
オペレーティングシステムの印刷ダイアログボックスを表示し、スプールを開始します。ユーザーは印刷ダイアログボックスで印刷設定を変更できます。PrintJob.start()
メソッドが正常に返された場合、つまりユーザーが印刷ダイアログボックスで「OK」をクリックした場合、ユーザーが選択した印刷設定を表す値が次のプロパティに設定されます。
プロパティ | 型 | 単位 | メモ |
---|---|---|---|
PrintJob.paperHeight | Number | ポイント | 用紙の高さ |
PrintJob.paperWidth | Number | ポイント | 用紙全体の幅 |
PrintJob.pageHeight | Number | ポイント | 用紙上の実際の印刷可能領域の高さ。ユーザーが設定した余白は含みません。 |
PrintJob.pageWidth | Number | ポイント | 用紙上の実際の印刷可能領域の幅。ユーザーが設定した余白は含みません。 |
PrintJob.orientation | String | "portrait" (flash.printing.PrintJobOrientation.PORTRAIT )または "landscape" (flash.printing.PrintJobOrientation.LANDSCAPE )。 |
注意:ユーザーが印刷ダイアログボックスでキャンセルすると、プロパティは設定されません。
ユーザーが印刷ダイアログボックスで「OK」をクリックすると、オペレーティングシステムへの印刷ジョブのスプールが開始されます。オペレーティングシステムで印刷の進行状況について情報が表示されるため、ページをスプーラに送信したら直ちに PrintJob.addPage()
および PrintJob.send()
を呼び出す必要があります。このメソッドによって値が設定された読み取り専用の高さ、幅、方向のプロパティを使用して、印刷結果をフォーマットできます。
PrintJob.addPage()
や PrintJob.send()
を呼び出す前に、このメソッドが true
を返すこと(ユーザーがオペレーティングシステムの印刷ダイアログボックスで「OK」をクリックした場合)を確認するために、テストを行います。
var myPrintJob:PrintJob = new PrintJob(); if(myPrintJob.start()) { // addPage() and send() statements here }
特定の印刷ジョブインスタンスでは、次の間隔のいずれかが 15 秒を超えると、PrintJob.start()
の次の呼び出しによって false
が返されます。
PrintJob.start()
および 1 つ目のPrintJob.addPage()
- 1 つの
PrintJob.addPage()
と次のPrintJob.addPage()
- 最後の
PrintJob.addPage()
およびPrintJob.send()
Boolean — 印刷ダイアログボックスでユーザーが「OK」をクリックした場合は true 、ユーザーが「キャンセル」をクリックした場合、またはエラーが発生した場合は false を返します。
|
例外
IllegalOperationError — AIR 以降で、別の PrintJob が現在アクティブになっている場合。
|
関連する API エレメント
start2 | () | メソッド |
public function start2(uiOptions:PrintUIOptions = null, showPrintDialog:Boolean = true):Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2 |
必要に応じて、オペレーティングシステムの印刷ダイアログボックスを表示してスプールを開始し、PrintJob の読み取り専用プロパティ値を編集することもできます。
uiOptions
パラメーターを使用すると、印刷ダイアログに表示するオプションを呼び出し側で制御できます。詳しくは、PrintUIOptions
クラスを参照してください。このパラメーターは、showPrintDialog
が false の場合は無視されます。
showPrintDialog
が true
であっても、このメソッドの動作が start()
メソッドの動作と異なることがあります。一部のオペレーティングシステムでは、start()
によって、まずページ設定ダイアログが表示され、続いて印刷ダイアログが表示されます。一方、start2()
では、ページ設定ダイアログは表示されません。
次の例では、印刷ダイアログがユーザーに表示される前に、印刷ダイアログの最小ページおよび最大ページ設定が設定されます。
import flash.printing.PrintJob; import flash.printing.PrintUIOptions; var myPrintJob:PrintJob = new PrintJob(); var uiOpt:PrintUIOptions = new PrintUIOptions(); uiOpt.minPage = 1; uiOpt.maxPage = 3; var accepted:Boolean = myPrintJob.start2(uiOpt);
パラメーター
uiOptions:PrintUIOptions (default = null ) — ユーザーに表示される印刷ダイアログに表示するオプションを指定するオブジェクト。showPrintDialog パラメーターが false の場合、この値は無視されます。
| |
showPrintDialog:Boolean (default = true ) — 印刷ジョブを開始する前に、印刷ダイアログをユーザーに表示するかどうかを指定します。
|
Boolean — 印刷ダイアログボックスでユーザーが「OK」をクリックした場合、または印刷ダイアログが表示されておらず、エラーがない場合は true を返し、ユーザーが「キャンセル」をクリックした場合、またはエラーが発生した場合は false を返します。
|
例外
IllegalOperationError — ページ設定ダイアログが表示されている場合、または別の印刷ジョブが現在アクティブである場合。
|
関連する API エレメント
terminate | () | メソッド |
public function terminate():void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2 |
印刷ジョブが送信されずに終了することを通知します。このメソッドは、start()
または start2()
を呼び出すことによって印刷ジョブが既に開始されているが、ページをプリンターに送信することが適切ではない場合に使用します。通常、terminate()
は、エラーから回復するためにのみ使用されます。
このメソッドを呼び出した後、PrintJob インスタンスは再利用できます。可能な場合は常に、ジョブの印刷設定は、次回以降に使用できるように保持されます。
addPage()
メソッドによってスプライトが単一のページとして追加されます。send()
メソッドによって、プリンターにページがスプールされます。
package { import flash.printing.PrintJob; import flash.display.Sprite; public class BasicPrintExample extends Sprite { var myPrintJob:PrintJob = new PrintJob(); var mySprite:Sprite = new Sprite(); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawCircle(100, 100, 50); public function BasicPrintExample() { if (myPrintJob.start()) { try { myPrintJob.addPage(mySprite); } catch(e:Error) { // handle error } myPrintJob.send(); } } }
PrintJobExample
を使用して小さな文書を作成し、その文書をプリンターに送ります。ここでは以下の手順を実行します。
sheet1
およびsheet2
という名前の Sprite 型の 2 つの変数を宣言します。init()
を呼び出します。これは、新しい Sprite インスタンスをsheet1
とsheet2
に割り当てた後、別の引数を使用してcreateSheet()
を呼び出します。createSheet()
は、以下の処理を行います。- 渡された Sprite オブジェクトを使用して矩形を描画します。これは、明るい灰色の背景に 1 ピクセルの黒い境界線を使用し、x = 0、y = 0 の位置に幅 100 ピクセル、高さ 200 ピクセルで描画されます。
- 新しい TextField オブジェクトが作成されます。この名前は
txt
であり、Sprite と同じサイズです。wordWrap プロパティはtrue
に設定され、テキストプロパティはcreateSheet()
への引数として渡される String に設定されます。 - 渡された Object 引数が null ではない場合、新しい Sprite インスタンスを作成します。このインスタンスの名前は
img
であり、渡されたオブジェクトの座標およびサイズのプロパティを使用して、白い矩形を描画するときに使用されます。addChild()
を使用して、白い四角形を Sprite オブジェクトの表示リストに追加します。 addChild()
を使用して、txt
TextField を Sprite オブジェクトの表示リストに追加します。
- コンストラクターに戻ると、有効な(コメントアウトされていない)印刷メソッドが呼び出されます。これらのメソッドは非常に似ているため、
printOnePerPage()
については後で説明します。 printOnePerPage()
は、以下の処理を行います。- 新しい PrintJob オブジェクトを宣言します。オブジェクトには uint 型として
pj
とpagesToPrint
という名前を付けます。 - オペレーティングシステムのネイティブの印刷ダイアログボックスを開き、ユーザーが
OK
をクリックするまで待機します。 - 原点を確認し、「横」が選択されている場合は、エラーをスローして終了します。
sheet1
とsheet2
にページの高さと幅を設定します。sheet1
およびsheet2
を印刷スプーラに送ります(addPage()
を使用)。- 印刷するページ数が 1 ページ以上ある場合は、スプールされたページをすべて印刷します。
- 新しい PrintJob オブジェクトを宣言します。オブジェクトには uint 型として
draw()
メソッドが呼び出されます。このメソッドによりステージに合わせて 2 つの Sprite プロパティのサイズが変更され、sheet2
がsheet1
の右側になるように再配置されます。
メモ:コンストラクターは、必要に応じて、ページあたり 1 シート、ページあたり 2 シート、またはページの上半分に印刷の 3 つの印刷メソッドのいずれかを選択できるように設定されます。コードコメントを使用して印刷メソッドのうちちょうど 2 つが無効にされている場合に限り、この例は適切に動作します。この例は、printOnePerPage()
が呼び出されるように設定されています。
package { import flash.printing.PrintJob; import flash.printing.PrintJobOrientation; import flash.display.Stage; import flash.display.Sprite; import flash.text.TextField; import flash.geom.Rectangle; public class PrintJobExample extends Sprite { private var sheet1:Sprite; private var sheet2:Sprite; public function PrintJobExample() { init(); printOnePerPage(); // printTwoPerPage(); // printTopHalf(); draw(); } private function init():void { sheet1 = new Sprite(); createSheet(sheet1, "Once upon a time...", {x:10, y:50, width:80, height:130}); sheet2 = new Sprite(); createSheet(sheet2, "There was a great story to tell, and it ended quickly.\n\nThe end.", null); } private function createSheet(sheet:Sprite, str:String, imgValue:Object):void { sheet.graphics.beginFill(0xEEEEEE); sheet.graphics.lineStyle(1, 0x000000); sheet.graphics.drawRect(0, 0, 100, 200); sheet.graphics.endFill(); var txt:TextField = new TextField(); txt.height = 200; txt.width = 100; txt.wordWrap = true; txt.text = str; if(imgValue != null) { var img:Sprite = new Sprite(); img.graphics.beginFill(0xFFFFFF); img.graphics.drawRect(imgValue.x, imgValue.y, imgValue.width, imgValue.height); img.graphics.endFill(); sheet.addChild(img); } sheet.addChild(txt); } private function printOnePerPage():void { var pj:PrintJob = new PrintJob(); var pagesToPrint:uint = 0; if(pj.start()) { if(pj.orientation == PrintJobOrientation.LANDSCAPE) { throw new Error("Without embedding fonts you must print one sheet per page with an orientation of portrait."); } sheet1.height = pj.pageHeight; sheet1.width = pj.pageWidth; sheet2.height = pj.pageHeight; sheet2.width = pj.pageWidth; try { pj.addPage(sheet1); pagesToPrint++; } catch(e:Error) { // do nothing } try { pj.addPage(sheet2); pagesToPrint++; } catch(e:Error) { // do nothing } if(pagesToPrint > 0) { pj.send(); } } } private function printTwoPerPage():void { var pj:PrintJob = new PrintJob(); var pagesToPrint:uint = 0; if(pj.start()) { if(pj.orientation == PrintJobOrientation.PORTRAIT) { throw new Error("Without embedding fonts you must print two sheets per page with an orientation of landscape."); } sheet1.height = pj.pageHeight; sheet1.width = pj.pageWidth/2; sheet2.height = pj.pageHeight; sheet2.width = pj.pageWidth/2; var sheets:Sprite = new Sprite(); sheets.addChild(sheet1); sheets.addChild(sheet2); sheets.getChildAt(1).x = sheets.getChildAt(0).width; try { pj.addPage(sheets); pagesToPrint++; } catch(e:Error) { // do nothing } if(pagesToPrint > 0) { pj.send(); } } } private function printTopHalf():void { var pj:PrintJob = new PrintJob(); var pagesToPrint:uint = 0; if(pj.start()) { if(pj.orientation == PrintJobOrientation.PORTRAIT) { throw new Error("Without embedding fonts you must print the top half with an orientation of landscape."); } sheet1.height = pj.pageHeight; sheet1.width = pj.pageWidth/2; sheet2.height = pj.pageHeight; sheet2.width = pj.pageWidth/2; var sheets:Sprite = new Sprite(); sheets.addChild(sheet1); sheets.addChild(sheet2); sheets.getChildAt(1).x = sheets.getChildAt(0).width; try { pj.addPage(sheets, new Rectangle(0, 0, sheets.width, sheets.height/2)); pagesToPrint++; } catch(e:Error) { // do nothing } if(pagesToPrint > 0) { pj.send(); } } } private function draw():void { var sheetWidth:Number = this.stage.stageWidth/2; var sheetHeight:Number = this.stage.stageHeight; addChild(sheet1); sheet1.width = sheetWidth; sheet1.height = sheetHeight; addChild(sheet2); sheet2.width = sheetWidth; sheet2.height = sheetHeight; sheet2.x = sheet1.width; } } }
package { import flash.display.Sprite; import flash.display.Stage; import flash.geom.Rectangle; import flash.printing.PaperSize; import flash.printing.PrintJob; import flash.printing.PrintJobOrientation; import flash.printing.PrintUIOptions; import flash.text.TextField; public class PrintJobExample extends Sprite { private var bg:Sprite; private var txt:TextField; private var pj:PrintJob; private var uiOpt:PrintUIOptions; public function PrintJobExample():void { var pj = new PrintJob(); uiOpt = new PrintUIOptions(); initPrintJob(); initContent(); draw(); printPage(); } private function printPage():void { if (pj.supportsPageSetupDialog) { pj.showPageSetupDialog(); } if (pj.start2(uiOpt, true)) { try { pj.addPage(this, new Rectangle(0, 0, 100, 100)); } catch (error:Error) { // Do nothing. } pj.send(); } else { txt.text = "Print job terminated"; pj.terminate(); } } private function initContent():void { bg = new Sprite(); bg.graphics.beginFill(0x00FF00); bg.graphics.drawRect(0, 0, 100, 200); bg.graphics.endFill(); txt = new TextField(); txt.border = true; txt.text = "Hello World"; } private function initPrintJob():void { pj.setPaperSize(PaperSize.LEGAL); pj.orientation = PrintJobOrientation.LANDSCAPE; pj.copies = 2; pj.jobName = "Flash test print"; } private function draw():void { addChild(bg); addChild(txt); txt.x = 50; txt.y = 50; } } }
Tue Jun 12 2018, 10:34 AM Z