執行
addPage()
和
send()
呼叫之前,請先檢查
PrintJob.start()
方法是否傳回
true
,以免使用者已經取消了列印工作。有個簡單的方式,可以在執行前先檢查是否已經取消這些方法,就是將它們包含在
if
陳述式中,如下列範例所示:
if (myPrintJob.start())
{
// addPage() and send() statements here
}
如果
PrintJob.start()
為
true
,表示使用者已經選取「列印」(或 Flash 執行階段,例如 Flash Player 或 AIR,已經起始「列印」命令)。所以,可以呼叫
addPage()
和
send()
方法。
同時,為了協助管理列印程序,Flash 執行階段會擲回
PrintJob.addPage()
方法的例外,讓您能夠捕捉錯誤,並將資訊和選項提供給使用者。如果
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 執行階段將列印工作傳送到印表機時發生問題 (例如,印表機為離線狀態),您也可以捕捉這個例外,並將資訊或更多選項 (例如,顯示訊息文字或使用動畫提供警告) 提供給使用者 (或 Flash 執行階段)。例如,您可以在
if..else
陳述式中指定新文字給文字欄位,如下列程式碼所示:
if (myPrintJob.start())
{
try
{
myPrintJob.addPage([params]);
}
catch (error:Error)
{
// Handle error.
}
myPrintJob.send();
}
else
{
myAlert.text = "Print job canceled";
}
如需實際的範例說明,請參閱
列印範例:縮放、裁切和回應
。