在用户已取消打印作业的情况下,检查在执行
addPage()
和
send()
调用之前,
PrintJob.start()
方法是否返回
true
。一种在继续之前检查是否已取消这些方法的简单方式是将这些方法包在
if
语句中,如下所示:
if (myPrintJob.start())
{
// addPage() and send() statements here
}
如果
PrintJob.start()
为
true
,则用户选择 Print(或 Flash 运行时,例如 Flash Player 或 AIR,已启动 Print 命令)。因此,可以调用
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 运行时在向打印机发送打印作业时遇到问题(例如,如果打印机脱机),您也可以捕获到该异常,并提供详细信息或更多选项(例如显示消息文本或在动画中提供警告)。例如,您可以为
if..else
语句中的文本字段分配新文本,如下面的代码所示:
if (myPrintJob.start())
{
try
{
myPrintJob.addPage([params]);
}
catch (error:Error)
{
// Handle error.
}
myPrintJob.send();
}
else
{
myAlert.text = "Print job canceled";
}
有关运行正常的示例,请参阅
打印示例:缩放、裁剪和响应
。