Du måste kontrollera om metoden
PrintJob.start()
returnerar
true
innan anropen
addPage()
och
send()
körs om användaren har avbrutit utskriften. Ett enkelt sätt att kontrollera om dessa metoder har avbrutits innan du fortsätter är att lägga in dem i en
if
-programsats, på följande vis:
if (myPrintJob.start())
{
// addPage() and send() statements here
}
Om
PrintJob.start()
är
true
har användaren valt Print (eller en Flash-miljö, som Flash Player eller AIR, har initierat ett Print-kommando). Därmed kan metoderna
addPage()
och
send()
anropas.
För att utskriften ska bli lättare att hantera utlöses undantag för metoden
PrintJob.addPage()
, så att du kan fånga upp fel och ge användaren information och alternativ. Om metoden
PrintJob.addPage()
misslyckas kan du anropa en annan funktion eller avbryta den aktuella utskriften. Du fångar upp dessa undantag genom att bädda in
addPage()
-anrop inuti en
try..catch
-programsats som i följande exempel. I exemplet är
[params]
en platshållare för de parametrar som anger det innehåll som ska skrivas ut:
if (myPrintJob.start())
{
try
{
myPrintJob.addPage([params]);
}
catch (error:Error)
{
// Handle error,
}
myPrintJob.send();
}
När utskriften startar kan du lägga till innehåll med hjälp av
PrintJob.addPage()
och se om detta genererar ett undantag (om till exempel användaren har avbrutit utskriften). I så fall kan du lägga till logik i programsatsen
catch
för att förse användaren (eller Flash-miljön) med information och alternativ, men du kan också avbryta den aktuella utskriften. När du har lagt till sidan kan du fortsätta med att skicka sidorna till skrivaren med
PrintJob.send()
.
Om det uppstår något problem när utskriften skickas till skrivaren (om skrivaren till exempel är offline) kan du fånga upp det här undantaget också och tillhandahålla mer information eller fler alternativ (till exempel visa ett textmeddelande eller animera en varning). Du kan till exempel tilldela ny text till ett textfält i en
if..else
-programsats, vilket visas i följande kod:
if (myPrintJob.start())
{
try
{
myPrintJob.addPage([params]);
}
catch (error:Error)
{
// Handle error.
}
myPrintJob.send();
}
else
{
myAlert.text = "Print job canceled";
}
Ett fungerande exempel finns i
Exempel på utskrift: skala, beskära och svara
.