ユーザーがプリントジョブをキャンセルした場合に対応するため、
addPage()
および
send()
の呼び出しを実行する前に、
PrintJob.start()
メソッドが
true
を返したかどうかを確認してください。これらのメソッドに対する呼び出しを次のように
if
ステートメントで囲むと、続行する前にキャンセルされたかどうかを簡単にチェックできます。
if (myPrintJob.start())
{
// addPage() and send() statements here
}
PrintJob.start()
が
true
の場合は、ユーザーが「印刷」を選択(または Flash Player または AIR などの Flash ランタイムが Print コマンドを開始)しています。したがって、
addPage()
および
send()
メソッドを呼び出すことができます。
また、プリント処理を管理しやすくするために、
PrintJob.addPage()
メソッドに対して Flash ランタイムから例外が送出されます。これらのエラーをキャッチすることにより、ユーザーに情報と対処方法の選択肢を示すことができます。
PrintJob.addPage()
メソッドが失敗した場合は、別の関数を呼び出すか、現在のプリントジョブを停止する方法もあります。これらの例外は、
addPage()
の呼び出しを
try..catch
ステートメント内に埋め込むことによってキャッチできます。この例では、
[params]
はパラメーターのプレースホルダーで、実際にプリントする内容を指定します。
if (myPrintJob.start())
{
try
{
myPrintJob.addPage([params]);
}
catch (error:Error)
{
// Handle error,
}
myPrintJob.send();
}
プリントジョブを開始した後は、
PrintJob.addPage()
を使用してコンテンツを追加し、それによって例外(ユーザーがプリントジョブをキャンセルした場合など)が発生するかどうかを確認できます。例外が発生した場合は、
catch
ステートメントにロジックを追加して、ユーザー(または Flash ランタイム)に情報と対処方法の選択肢を示すか、現在のプリントジョブを停止できます。ページを正常に追加できた場合は、次に
PrintJob.send()
でページをプリンターに送信します。
Flash ランタイムがプリントジョブをプリンターに送信する際に問題が発生した場合(プリンターがオフラインになっていた場合など)も、同様にその例外をキャッチし、情報と対処方法の選択肢を示すことができます(メッセージテキストと警告をアニメーションで表示することなどが考えられます)。例えば、次のコードに示すように、テキストフィールドに
if..else
ステートメントで新しいテキストを割り当てることができます。
if (myPrintJob.start())
{
try
{
myPrintJob.addPage([params]);
}
catch (error:Error)
{
// Handle error.
}
myPrintJob.send();
}
else
{
myAlert.text = "Print job canceled";
}
実際に動作するサンプルについては、
プリントの例:拡大/縮小、トリミング、および応答
を参照してください。