Przed wywołaniem metod
addPage()
i
send()
należy sprawdzić, czy metoda
PrintJob.start()
zwróciła
true
, na wypadek, gdyby użytkownik anulował zadanie drukowania. Prosty sposób na wstępne sprawdzenie, czy nie doszło do anulowania tych metod, polega na ujęciu ich w instrukcję
if
, co zilustrowano poniżej:
if (myPrintJob.start())
{
// addPage() and send() statements here
}
Jeśli wywołanie
PrintJob.start()
zwróciło wartość
true
, użytkownik wybrał polecenie Drukuj (lub środowisko wykonawcze Flash, np. Flash Player lub AIR, zainicjowało polecenie Drukuj). Możliwe jest zatem wywoływanie metod
addPage()
i
send()
.
Ponadto, aby usprawnić zarządzanie procesem drukowania, środowiska wykonawcze Flash generują wyjątki przy wykonywaniu metody
PrintJob.addPage()
, dzięki czemu możliwe jest wychwytywanie błędów i udostępnianie informacji oraz opcji użytkownikowi. Jeśli wywołanie
PrintJob.addPage()
zakończy się niepowodzeniem, można wywołać inną funkcję lub zatrzymać bieżące zadanie drukowania. Odpowiednie wyjątki przechwytuje się, osadzając wywołania
addPage()
w instrukcji
try..catch
, co ilustruje poniższy przykład: W przykładzie tym zapis
[params]
zastępuje parametry określające faktyczną treść przeznaczoną do wydrukowania:
if (myPrintJob.start())
{
try
{
myPrintJob.addPage([params]);
}
catch (error:Error)
{
// Handle error,
}
myPrintJob.send();
}
Po uruchomieniu zadania drukowania można dodawać treść za pomocą metody
PrintJob.addPage()
i sprawdzać, czy spowoduje to wygenerowanie wyjątku (na przykład, jeśli użytkownik anuluje zadanie drukowania). W razie wystąpienia wyjątku odpowiednia logika instrukcji
catch
może udostępniać użytkownikowi (lub środowisku wykonawczemu Flash) informacje i opcje albo zatrzymać bieżące zadanie drukowania. Po pomyślnym dodaniu strony można przystąpić do wysyłania stron do drukarki przy użyciu metody
PrintJob.send()
.
Jeśli środowisko wykonawcze Flash Player napotka problem podczas wysyłania zadania drukowania do drukarki (np. drukarka jest w trybie offline), również można przechwycić odpowiedni wyjątek i udostępnić użytkownikowi informacje lub dodatkowe opcje (np. wyświetlić komunikat lub alert w animacji). Poniższy przykładowy kod ilustruje przypisanie nowego tekstu do pola tekstowego w instrukcji
if..else
:
if (myPrintJob.start())
{
try
{
myPrintJob.addPage([params]);
}
catch (error:Error)
{
// Handle error.
}
myPrintJob.send();
}
else
{
myAlert.text = "Print job canceled";
}
Działający przykład można znaleźć w rozdziale
Przykład z drukowaniem: skalowanie, obcinanie i reagowanie
.