public final class PrinterJob extends Object
これには、次のものが含まれます
単一ノードを印刷する、非常に単純な例を次に示します。
Node node = new Circle(100, 200, 200); PrinterJob job = PrinterJob.createPrinterJob(); if (job != null) { boolean success = job.printPage(node); if (success) { job.endJob(); } }注意点
前述の例では、ノードはシーンに追加されていません。ほとんどの印刷シナリオでは、まったく表示されていないか、別途準備してフォーマットする必要のあるコンテンツを印刷するため、これで問題はありません。
現在シーンの一部として表示されているコンテンツを印刷する場合は、ジョブの印刷が(ジョブの単一ページの印刷であっても)複数のスクリーン「パルス」(フレーム)にまたがる可能性があるため、アプリケーションでは、印刷対象のノードが印刷処理中に更新されないようにすることが重要です。そうしないと、レンダリングが部分的にしか行われなかったり、レンダリング結果が崩れたりすることが考えられます。
表示されていないノードにも同じことが当てはまるのは明らかであるため、印刷と並行してノードを更新するのは避けてください。
FXアプリケーション・スレッドで印刷を実行する際の必要条件はありません。ノードの印刷準備やジョブの呼出しはどのスレッドでも行うことができます。ただし、アプリケーションUIの応答性に影響が及ばないように、FXアプリケーション・スレッドで実行される処理の量を最小限に抑えるのが一般的に望ましいと言えます。したがって、印刷は新しいスレッドで実行し、実装内部のスケジューリングによって、FXスレッドで実行する必要のあるすべてのタスクがそのスレッドで実行されるようにすることをお薦めします。
型 | プロパティと説明 |
---|---|
ReadOnlyObjectProperty<PrinterJob.JobStatus> |
jobStatus
現在の
JobStatus を表す読取り専用のオブジェクト・プロパティ |
ObjectProperty<Printer> |
printer
このジョブの
Printer を表すプロパティ。 |
修飾子と型 | クラスと説明 |
---|---|
static class |
PrinterJob.JobStatus
印刷ジョブのステータスをレポートする際に使用される列挙型クラス。
|
修飾子と型 | メソッドと説明 |
---|---|
void |
cancelJob()
基礎となる印刷ジョブを速やかに取り消します。
|
static PrinterJob |
createPrinterJob()
ジョブを作成するファクトリ・メソッド。
|
static PrinterJob |
createPrinterJob(Printer printer)
指定されたプリンタのジョブを作成するファクトリ・メソッド。
|
boolean |
endJob()
ジョブをプリンタのキューに正常にスプールできる場合は、trueを返します。
|
JobSettings |
getJobSettings()
JobSettings は、APIでサポートされるすべてのジョブ構成オプション(部数、丁合いオプション、両面オプションなど)をカプセル化します。 |
PrinterJob.JobStatus |
getJobStatus()
ジョブの現在のステータスを取得します。
|
Printer |
getPrinter()
現在このジョブに関連付けられているプリンタを取得します。
|
ReadOnlyObjectProperty<PrinterJob.JobStatus> |
jobStatusProperty()
現在の
JobStatus を表す読取り専用のオブジェクト・プロパティ |
ObjectProperty<Printer> |
printerProperty()
このジョブの
Printer を表すプロパティ。 |
boolean |
printPage(Node node)
指定されたノードを印刷します。
|
boolean |
printPage(PageLayout pageLayout, Node node)
指定されたページ・レイアウトを使用して、指定されたノードを印刷します。
|
void |
setPrinter(Printer printer)
このジョブのプリンタを変更します。
|
boolean |
showPageSetupDialog(Window owner)
ページ設定ダイアログを表示します。
|
boolean |
showPrintDialog(Window owner)
印刷ダイアログを表示します。
|
String |
toString() |
public final ObjectProperty<Printer> printerProperty
Printer
を表すプロパティ。getPrinter()
, setPrinter(Printer)
public ReadOnlyObjectProperty<PrinterJob.JobStatus> jobStatusProperty
JobStatus
を表す読取り専用のオブジェクト・プロパティgetJobStatus()
public static final PrinterJob createPrinterJob()
SecurityException
- ジョブに印刷ジョブを開始するためのアクセス権がない場合。public static final PrinterJob createPrinterJob(Printer printer)
printer
引数によって初期プリンタが決定されます
printer
- ジョブに使用。現在プリンタが使用できない(オフラインなど)の場合は、nullを返します。SecurityException
- ジョブに印刷ジョブを開始するためのアクセス権がない場合。public final ObjectProperty<Printer> printerProperty()
Printer
を表すプロパティ。getPrinter()
, setPrinter(Printer)
public Printer getPrinter()
public void setPrinter(Printer printer)
前述の処理は、このメソッドを呼び出すことでプリンタが直接変更されたのか、印刷ダイアログでのユーザー操作の副次的作用としてなのかにかかわらず適用されます。
プリンタとしてnull値を設定すると、デフォルト・プリンタがインストールされます。現在のプリンタを設定することは無効です。
printer
- この印刷ジョブに使用。public JobSettings getJobSettings()
JobSettings
は、APIでサポートされるすべてのジョブ構成オプション(部数、丁合いオプション、両面オプションなど)をカプセル化します。初期値は、初期プリンタの現在の設定に基づいています。public boolean showPrintDialog(Window owner)
使用可能なUIがない場合、このメソッドは、ユーザーが印刷に進むことを確認した場合と同様に、オプションを変更することなくtrueを返します。
ジョブがダイアログを表示できる状態にない場合(すでに印刷中、取消し済、完了など)、ダイアログは表示されず、メソッドはfalseを返します。
ウィンドウのowner
はnullでもかまいませんが、表示されるウィンドウの場合は親として使用されます。
owner
- 入力をブロックする対象、またはnull。public boolean showPageSetupDialog(Window owner)
この目的に最も適した使用可能なダイアログが表示されます。ただし、現在のプリンタの変更など、他の設定にアクセスすることも可能です。したがって、このダイアログ表示メソッドの副次的作用として、それや他の現在のジョブ設定が更新されることがあります。このメソッドは、変更を行われたかどうかに関係なく、ユーザーがダイアログを確定した場合にtrueを返します。
ジョブがダイアログを表示できる状態にない場合(すでに印刷中、取消し済、完了など)、ダイアログは表示されず、メソッドはfalseを返します。
ウィンドウのowner
はnullでもかまいませんが、表示されるウィンドウの場合は親として使用されます。
owner
- 入力をブロックする対象、またはnull。public boolean printPage(PageLayout pageLayout, Node node)
pageLayout
- このページのレイアウト。node
- 印刷するノード。NullPointerException
- いずれかのパラメータがnullの場合。public boolean printPage(Node node)
node
- 印刷するノード。NullPointerException
- nodeパラメータがnullの場合。public ReadOnlyObjectProperty<PrinterJob.JobStatus> jobStatusProperty()
JobStatus
を表す読取り専用のオブジェクト・プロパティgetJobStatus()
public PrinterJob.JobStatus getJobStatus()
JobStatus
public void cancelJob()
ジョブのCANCELEDへの変更がすでにリクエストされている場合、またはジョブがERRORまたはDONE状態にある場合、呼出しは無効です。たとえば、すでに印刷のためにスプールされているジョブはプリンタからデキューされません。ジョブの取消し後は、新しいコンテンツをレンダリングしたり、ジョブ状態を変更したりするメソッドの呼出しは無効です。
public boolean endJob()
戻り値がfalseの場合、ジョブをスプールできなかったか、ジョブがすでに完了していたことを意味します。
正常に完了した場合も、ジョブのステータスはDONE
に更新され、その時点でそのジョブは使用できなくなります。
ページが印刷されていないジョブに対してendJob()を呼び出すことは、{code cancelJob()}を呼び出すことと同等です。
Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.