Pakiet | flash.printing |
Klasa | public class PrintJob |
Dziedziczenie | PrintJob EventDispatcher Object |
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Obsługa w przeglądarkach na urządzeniach mobilnych: Ta klasa nie jest obsługiwana w przeglądarkach na urządzeniach przenośnych.
Obsługa profilów AIR: Ta funkcja jest obsługiwana we wszystkich systemach operacyjnych dla komputerów stacjonarnych, ale nie jest obsługiwana na urządzeniach przenośnych ani na urządzeniach telewizyjnych ze środowiskiem AIR. W czasie wykonywania można sprawdzić, czy funkcja jest obsługiwana, odczytując właściwość PrintJob.isSupported
. Więcej informacji o obsłudze elementów interfejsu API w różnych profilach można znaleźć w sekcji Obsługa profilów aplikacji AIR.
W celu utworzenia zadania drukowania należy użyć konstruktora PrintJob()
.
Ponadto dzięki właściwościom klasy PrintJob, użytkownik może odczytywać ustawienia drukarki, takie jak wysokość i szerokość stron oraz orientacja obrazu. Może również konfigurować dokument w celu dynamicznego formatowania zawartości Flash odpowiednio do ustawień drukarki.
Uwaga: Język ActionScript 3.0 nie ogranicza obiekt PrintJob do pojedynczej klatki (tak było w poprzednich wersjach języka ActionScript). Jednak system operacyjny wyświetla informacje o statusie drukowania po kliknięciu przycisku OK w oknie dialogowym Drukuj, dlatego jak najszybciej należy wywołać metodę PrintJob.addPage()
i PrintJob.send()
w celu wysłania stron do bufora. Jeśli zakres opóźnienia obejmuje klatkę, w której wywoływana jest metoda PrintJob.send()
, nastąpi opóźnienie procesu drukowania.
Ponadto do następujących przedziałów czasowych ma zastosowanie 15-sekudowy limit czasu dla skryptu:
- Metoda
PrintJob.start()
oraz pierwsze wywołanie metodyPrintJob.addPage()
- Metoda
PrintJob.addPage()
oraz drugie wywołanie metodyPrintJob.addPage()
- Ostatnie wywołanie metody
PrintJob.addPage()
oraz wywołanie metodyPrintJob.send()
Jeśli którykolwiek z powyższych przedziałów czasowych trwa dłużej niż 15 sekund, kolejne wywołanie metody PrintJob.start()
dla instancji PrintJob powoduje zwrócenie wartości false
, a kolejne wywołania metody PrintJob.addPage()
dla instancji PrintJob powodują, że program Flash Player lub środowisko Adobe AIR zgłasza wyjątek środowiska wykonawczego.
Właściwość | Zdefiniowane przez | ||
---|---|---|---|
active : Boolean [statyczny] [tylko do odczytu]
Wskazuje, czy aktualnie aktywne jest zadanie drukowania. | PrintJob | ||
constructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu. | Object | ||
copies : int
Liczba kopii stron dodawanych później do zadania drukowania, jaką drukuje system drukowania. | PrintJob | ||
firstPage : int [tylko do odczytu]
Numer pierwszej strony z zakresu wprowadzonego przez użytkownika w oknie dialogowym Drukowanie systemu operacyjnego. | PrintJob | ||
isColor : Boolean [tylko do odczytu]
Wskazuje, czy drukarka aktualnie wybrana w bieżących ustawieniach drukowania drukuje kolory (true), czy drukuje w skali szarości (false). | PrintJob | ||
isSupported : Boolean [statyczny] [tylko do odczytu]
Wskazuje, czy klasa PrintJob jest obsługiwana w bieżącej platformie (true), czy nie (false). | PrintJob | ||
jobName : String
Nazwa lub tytuł zadania drukowania. | PrintJob | ||
lastPage : int [tylko do odczytu]
Numer ostatniej strony z zakresu wprowadzonego przez użytkownika w oknie dialogowym Drukowanie systemu operacyjnego. | PrintJob | ||
maxPixelsPerInch : Number [tylko do odczytu]
Rozdzielczość wybranej drukarki, w pikselach na cal. | PrintJob | ||
orientation : String
Orientacja drukowanego obrazu. | PrintJob | ||
pageHeight : int [tylko do odczytu]
Wysokość (w punktach) największego obszaru, jaki można wyśrodkować w faktycznym obszarze dostępnym do zadrukowania na stronie. | PrintJob | ||
pageWidth : int [tylko do odczytu]
Szerokość (w punktach) największego obszaru, jaki można wyśrodkować w faktycznym obszarze dostępnym do zadrukowania na stronie. | PrintJob | ||
paperArea : Rectangle [tylko do odczytu]
Obwiednia nośnika w drukarce, w punktach. | PrintJob | ||
paperHeight : int [tylko do odczytu]
Całkowita wysokość papieru (w punktach). | PrintJob | ||
paperWidth : int [tylko do odczytu]
Całkowita szerokość papieru (w punktach). | PrintJob | ||
printableArea : Rectangle [tylko do odczytu]
Obwiednia obszaru możliwego do zadrukowania na nośniku w drukarce, w punktach. | PrintJob | ||
printer : String
Odczytuje lub ustawia drukarkę, która ma być używana w bieżącym zadaniu drukowania. | PrintJob | ||
printers : Vector.<String> [statyczny] [tylko do odczytu]
Zwraca listę dostępnych drukarek jako wartości obiektu String. | PrintJob | ||
supportsPageSetupDialog : Boolean [statyczny] [tylko do odczytu]
Wskazuje, czy środowisko wykonawcze Flash obsługuje odrębne okno dialogowe Ustawienia strony. | PrintJob |
Metoda | Zdefiniowane przez | ||
---|---|---|---|
PrintJob()
Tworzy obiekt PrintJob, który pozwala drukować strony. | PrintJob | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Rejestruje obiekt detektora zdarzeń w obiekcie EventDispatcher, dzięki czemu detektor będzie otrzymywał powiadomienia o zdarzeniu. | EventDispatcher | ||
addPage(sprite:Sprite, printArea:Rectangle = null, options:PrintJobOptions = null, frameNum:int = 0):void
Wysyła określony obiekt Sprite jako pojedynczą stronę do bufora drukarki. | PrintJob | ||
Wywołuje zdarzenie, tj. kieruje je do przepływu zdarzeń. | EventDispatcher | ||
Sprawdza, czy obiekt EventDispatcher zawiera jakiekolwiek detektory zarejestrowane dla konkretnego typu zdarzeń. | EventDispatcher | ||
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość. | Object | ||
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr. | Object | ||
Wskazuje, czy określona właściwość istnieje i jest przeliczalna. | Object | ||
Usuwa detektor z obiektu EventDispatcher. | EventDispatcher | ||
Ustawia rozmiar papieru. | PrintJob | ||
Wysyła buforowane strony do drukarki po pomyślnych wywołaniach metod start() lub start2() oraz addPage(). | PrintJob | ||
Ustawia dostępność właściwości dynamicznej używanej w pętlach. | Object | ||
Powoduje wyświetlenie okna dialogowego Ustawienia strony systemu operacyjnego, o ile bieżące środowisko obsługuje takie okno. | PrintJob | ||
Wyświetla systemowe okno dialogowe Drukowanie i rozpoczyna buforowanie. | PrintJob | ||
Opcjonalnie wyświetla okno dialogowe Drukowanie systemu operacyjnego, rozpoczyna buforowanie i ustawia właściwości tylko do odczytu obiektu PrintJob. | PrintJob | ||
Sygnalizuje, że zadanie drukowania powinno zostać zakończone bez wysyłania danych. | PrintJob | ||
Zwraca ciąg reprezentujący obiekt — sformatowany zgodnie z konwencjami właściwymi dla ustawień regionalnych. | Object | ||
Zwraca ciąg reprezentujący określony obiekt. | Object | ||
Zwraca pierwotną wartość dla określonego obiektu. | Object | ||
Sprawdza, czy detektor zdarzeń określonego typu jest zarejestrowany w tym obiekcie EventDispatcher lub jego elementach macierzystych. | EventDispatcher |
active | właściwość |
active:Boolean
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 2 |
Wskazuje, czy aktualnie aktywne jest zadanie drukowania. Zadanie drukowania jest aktywne (właściwość ma wartość true
), gdy spełniony jest dowolny z dwóch warunków:
- Na ekranie jest wyświetlone okno dialogowe Ustawienia strony lub Drukowanie.
- Została wywołana metoda
start()
lubstart2()
z wartością zwracanątrue
, a metodasend()
lubterminate()
nie została wywołana.
Jeśli ta właściwość ma wartość true
, a użytkownik wywołał metodę showPageSetupDialog()
, start()
lub start2()
, wówczas środowisko wykonawcze zgłasza wyjątek.
Implementacja
public static function get active():Boolean
Powiązane elementy interfejsu API
copies | właściwość |
copies:int
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 2 |
Liczba kopii stron dodawanych później do zadania drukowania, jaką drukuje system drukowania. Wartość jest liczbą kopii wprowadzoną przez użytkownika w oknie dialogowym Drukowanie systemu operacyjnego. Jeśli liczba kopii nie została wyświetlona w oknie dialogowym Drukowanie lub okno dialogowe nie zostało wyświetlone, wówczas wartość jest równa 1 (chyba że została zmieniona przez kod aplikacji).
Implementacja
public function get copies():int
public function set copies(value:int):void
firstPage | właściwość |
firstPage:int
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 2 |
Numer pierwszej strony z zakresu wprowadzonego przez użytkownika w oknie dialogowym Drukowanie systemu operacyjnego. Właściwość ma wartość zero, jeśli użytkownik zażądał wydrukowania wszystkich stron, jeśli zakres stron nie został wyświetlony w oknie dialogowym Drukowanie lub jeśli okno dialogowe Drukowanie nie zostało wyświetlone.
Implementacja
public function get firstPage():int
isColor | właściwość |
isColor:Boolean
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 2 |
Wskazuje, czy drukarka aktualnie wybrana w bieżących ustawieniach drukowania drukuje kolory (true
_, czy drukuje w skali szarości (false
).
Jeśli nie ma możliwości określenia wartości, która jednoznacznie określałaby drukowanie w kolorze lub drukowanie w skali szarości, wartością jest true
.
Implementacja
public function get isColor():Boolean
isSupported | właściwość |
jobName | właściwość |
jobName:String
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 2 |
Nazwa lub tytuł zadania drukowania. Nazwa zadania jest zwykle używana w systemie operacyjnym jako tytuł zadania w kolejce wydruku lub jako domyślna nazwa zadania drukowanego do pliku.
Jeśli nie wywołano metody start()
lub metody start2()
i nie ustawiono wartości dla właściwości, ta właściwość ma wartość null
.
Dla każdego zadania drukowania wykonywanego z instancja klasy PrintJob należy ustawić tę właściwość przed wywołaniem metody start()
lub start2()
.
Wartością domyślną jest null
.
Implementacja
public function get jobName():String
public function set jobName(value:String):void
Zgłasza
IllegalOperationError — jeśli kod podejmie próbę ustawienia właściwości, gdy właściwość active ma wartość true .
|
lastPage | właściwość |
lastPage:int
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 2 |
Numer ostatniej strony z zakresu wprowadzonego przez użytkownika w oknie dialogowym Drukowanie systemu operacyjnego. Właściwość ma wartość zero, jeśli użytkownik zażądał wydrukowania wszystkich stron, zakres stron nie został wyświetlony w oknie dialogowym Drukowanie lub okno dialogowe Drukowanie nie zostało wyświetlone.
Implementacja
public function get lastPage():int
maxPixelsPerInch | właściwość |
maxPixelsPerInch:Number
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 2 |
Rozdzielczość wybranej drukarki, w pikselach na cal. Wartość jest obliczana zgodnie z bieżącymi ustawieniami drukowania, które są zgłaszane przez system operacyjny.
Jeśli nie można określić rozdzielczości, wartość jest standardową wartością domyślną. Wartość domyślna wynosi 600 ppi w systemie Linux i 360 ppi w systemie Mac OS. W systemie Windows informacja o rozdzielczości drukarki jest zawsze dostępna, dlatego nie jest potrzebna wartość domyślna.
Implementacja
public function get maxPixelsPerInch():Number
orientation | właściwość |
orientation:String
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 9 - read only, AIR 1.0 - read only, AIR 2 - read-write |
Orientacja drukowanego obrazu. Akceptowalne wartości są zdefiniowane jako stałe w klasie PrintJobOrientation.
Uwaga: W środowisku AIR 2 i wersjach późniejszych tę właściwość należy ustawić przed uruchomieniem zadania drukowania, aby ustawić domyślną orientację w oknach dialogowych Ustawienia strony i Drukowanie. Tę właściwość należy ustawić w trakcie zadania drukowania (po wywołaniu start()
lub start2()
), aby ustawić orientację dla zakresu stron w zadaniu.
Implementacja
public function get orientation():String
public function set orientation(value:String):void
Powiązane elementy interfejsu API
pageHeight | właściwość |
pageHeight:int
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9. |
Wysokość (w punktach) największego obszaru, jaki można wyśrodkować w faktycznym obszarze dostępnym do zadrukowania na stronie. Wszelkie marginesy zdefiniowane przez użytkownika są ignorowane. Ta właściwość jest dostępna tylko po wywołaniu metody PrintJob.start()
.
Uwaga: W środowisku AIR 2 i wersjach późniejszych ta właściwość jest nieaktualna. Należy zamiast niej używać właściwości printableArea
, która zwraca wymiary obszaru dostępnego do zadrukowania w ułamkach punktów i precyzyjnie opisuje niewyśrodkowane obszary dostępne do zadrukowania.
Implementacja
public function get pageHeight():int
Powiązane elementy interfejsu API
pageWidth | właściwość |
pageWidth:int
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 9, AIR 1.0 |
Szerokość (w punktach) największego obszaru, jaki można wyśrodkować w faktycznym obszarze dostępnym do zadrukowania na stronie. Wszelkie marginesy zdefiniowane przez użytkownika są ignorowane. Ta właściwość jest dostępna tylko po wywołaniu metody PrintJob.start()
.
Uwaga: W środowisku AIR 2 i wersjach późniejszych ta właściwość jest nieaktualna. Należy zamiast niej używać właściwości printableArea
, która zwraca wymiary obszaru dostępnego do zadrukowania w ułamkach punktów i precyzyjnie opisuje niewyśrodkowane obszary dostępne do zadrukowania.
Implementacja
public function get pageWidth():int
Powiązane elementy interfejsu API
paperArea | właściwość |
paperArea:Rectangle
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 2 |
Obwiednia nośnika w drukarce, w punktach. Ta wartość stosuje ten sam układ współrzędnych, jaki jest używany dla kolejnych wywołań metody addPage()
.
Implementacja
public function get paperArea():Rectangle
paperHeight | właściwość |
paperHeight:int
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9. |
Całkowita wysokość papieru (w punktach). Ta właściwość jest dostępna tylko po wywołaniu metody PrintJob.start()
.
Uwaga: W środowisku AIR 2 i wersjach późniejszych ta właściwość jest nieaktualna. Zamiast niej należy używać metody paperArea
, która zwraca wymiary papieru w ułamkach punktów.
Implementacja
public function get paperHeight():int
Powiązane elementy interfejsu API
paperWidth | właściwość |
paperWidth:int
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9. |
Całkowita szerokość papieru (w punktach). Ta właściwość jest dostępna tylko po wywołaniu metody PrintJob.start()
.
Uwaga: W środowisku AIR 2 i wersjach późniejszych ta właściwość jest nieaktualna. Zamiast niej należy używać metody paperArea
, która zwraca wymiary papieru w ułamkach punktów.
Implementacja
public function get paperWidth():int
Powiązane elementy interfejsu API
printableArea | właściwość |
printableArea:Rectangle
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 2 |
Obwiednia obszaru możliwego do zadrukowania na nośniku w drukarce, w punktach. Ta wartość wykorzystuje ten sam układ współrzędnych, jaki jest używany dla kolejnych wywołań metody addPage()
.
Implementacja
public function get printableArea():Rectangle
printer | właściwość |
printer:String
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 2 |
Odczytuje lub ustawia drukarkę, która ma być używana w bieżącym zadaniu drukowania. Obiekt String przekazany do funkcji ustawiającej i zwracany przez funkcję pobierającą powinien być równy jednemu z ciągów znaków w obiekcie Array zwracanym przez metodę printers()
. Aby wskazać, że powinna być używana drukarka domyślna, ustaw wartość na null
. W systemach operacyjnych, w których nie można określić domyślnej drukarki, wartość dla właściwości to null
.
import flash.printing.PrintJob; var myPrintJob:PrintJob = new PrintJob(); myPrintJob.printer = "HP_LaserJet_1"; myPrintJob.start();
Ustawienie wartości tej właściwości powoduje natychmiastową próbę wybrania drukarki. Jeśli wybieranie drukarki nie powiedzie się, zostanie przywrócona poprzednia wartość tej właściwości. Aby sprawdzić, czy ustawienie wartości printer się powiodło, należy odczytać wartość po próbie jej ustawienia i upewnić się, że wartość jest zgodna z wartością ustawioną.
Nie można zmienić wartości właściwości printer
aktywnego zadania drukowania. Próba zmiany wartości po pomyślnym wywołaniu metody start()
lub start2()
i przed wywołaniem metody send()
lub terminate()
zakończy się niepowodzeniem.
Implementacja
public function get printer():String
public function set printer(value:String):void
printers | właściwość |
printers:Vector.<String>
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 2 |
Zwraca listę dostępnych drukarek jako wartości obiektu String. Lista nie jest ustalana z góry; generowana jest każdorazowo po wywołaniu funkcji. Jeśli w systemie nie ma dostępnych drukarek lub system nie obsługuje drukowania, wartość jest równa null
. Jeśli system obsługuje drukowanie, ale nie może zwrócić listy drukarek, wartością będzie obiekt Vector z pojedynczym elementem (jego właściwość length
będzie równa 1). W takim przypadku pojedynczy element będzie rzeczywistą nazwą drukarki lub nazwą domyślną, jeśli nie można ustalić bieżącej nazwy drukarki.
Implementacja
public static function get printers():Vector.<String>
supportsPageSetupDialog | właściwość |
supportsPageSetupDialog:Boolean
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 2 |
Wskazuje, czy środowisko wykonawcze Flash obsługuje odrębne okno dialogowe Ustawienia strony. Jeśli ta właściwość ma wartość true
, można wywołać metodę showPageSetupDialog()
w celu wyświetlenia okna dialogowego Ustawienia strony w systemie operacyjnym.
Implementacja
public static function get supportsPageSetupDialog():Boolean
Powiązane elementy interfejsu API
PrintJob | () | Konstruktor |
public function PrintJob()
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Tworzy obiekt PrintJob, który pozwala drukować strony. Po utworzeniu obiektu PrintJob należy uzyć (w określonej kolejności) metod PrintJob.start()
, PrintJob.addPage()
oraz PrintJob.send()
w celu wysłania zadania drukowania do drukarki.
Przykład: tekst [params]
można zastąpić dla wywołań metody myPrintJob.addPage()
, stosując niestandardowe parametry, co przedstawiono w poniższym kodzie:
// create PrintJob object var myPrintJob:PrintJob = new PrintJob(); // display Print dialog box, but only initiate the print job // if start returns successfully. if (myPrintJob.start()) { // add specified page to print job // repeat once for each page to be printed try { myPrintJob.addPage([params]); } catch(e:Error) { // handle error } try { myPrintJob.addPage([params]); } catch(e:Error) { // handle error } // send pages from the spooler to the printer, but only if one or more // calls to addPage() was successful. You should always check for successful // calls to start() and addPage() before calling send(). myPrintJob.send(); }
W AIR 2 i wersjach późniejszych można tworzyć i wykorzystywać wiele instancji klasy PrintJob. Po zakończeniu drukowania właściwości ustawione w instancji klasy PrintJob są zachowywane. Dzięki temu możliwe jest ponowne wykorzystanie instancji klasy PrintJob i zachowanie wybranych przez użytkownika preferencji drukowania, a jednocześnie możliwe jest oferowanie innych preferencji drukowania dla innych treści w aplikacji. Dla treści w programie Flash Player oraz w środowisku AIR w wersjach wcześniejszych niż wersja 2 nie można utworzyć drugiego obiektu PrintJob, gdy pierwszy jest nadal aktywny. Jeśli drugi obiekt PrintJob zostanie utworzony (poprzez wywołanie metody new PrintJob()
), podczas gdy aktywny jest pierwszy obiekt PrintJob, drugi obiekt PrintJob nie zostanie utworzony. Przed wywołaniem drugiego zadania PrintJob należy sprawdzić wartość myPrintJob
.
Zgłasza
IllegalOperationError — W programie Flash Player i środowisku AIR w wersjach wcześniejszych niż AIR 2 zgłasza wyjątek, jeśli inny obiekt PrintJob jest nadal aktywny.
|
Powiązane elementy interfejsu API
addPage | () | metoda |
public function addPage(sprite:Sprite, printArea:Rectangle = null, options:PrintJobOptions = null, frameNum:int = 0):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9. |
Wysyła określony obiekt Sprite, jako pojedynczą stronę, do bufora drukarki. Przed użyciem tej metody należy utworzyć obiekt PrintJob, a następnie użyć metody start()
lub start2()
. Następnie po wywołaniu metody addPage()
jeden raz lub więcej dla zadania drukowania należy użyć metody send()
w celu wysłania buforowanych stron do drukarki. Innymi słowy: po utworzeniu obiektu PrintJob należy użyć (w następującej kolejności) metody start()
lub start2()
, addPage()
, a następnie metody send()
w celu wysłania zadania drukowania do drukarki. W celu wydrukowania kilku stron w jednym zadaniu drukowania można wielokrotnie wywoływać metodę addPage()
po pojedynczym wywołaniu metody start()
.
Jeśli metoda addPage()
powoduje, że program Flash Player wywołuje wyjątek (na przykład: gdy nie wywołano metody start()
lub użytkownik anulował zadanie drukowania), wszelkie kolejne wywołania metody addPage()
zakończą się niepowodzeniem. Jeśli jednak poprzednie wywołania metody addPage()
zakończyły się pomyślnie, końcowa komenda send()
wysyła do drukarki strony, które zostały pomyślnie zapisane w buforze.
Jeśli wykonanie operacji addPage()
w ramach zadania drukowania trwa dłużej niż 15 sekund, program Flash Player zwróci wyjątek przy kolejnym wywołaniu addPage()
.
Jeśli dla parametru printArea
zostanie wprowadzona wartość, współrzędne x
i y
mapy prostokąta printArea
zostaną odwzorowane na lewy górny narożnik (współrzędne 0, 0) drukowanego obszaru strony. Właściwości tylko do odczytu: pageHeight
i pageWidth
opisują obszar wydruku na stronie określony przez metodę start()
. Obszar wydruku jest zrównany z lewym górnym narożnikiem drukowanego obszaru strony, dlatego jeśli obszar printArea
jest większy niż obszar drukowania na stronie, wydruk zostanie przycięty u dołu i góry (lub w obydwu tych miejscach) obszaru zdefiniowanego przez printArea
. W programie Flash Professional: jeśli nie zostanie wprowadzona wartość printArea
i stół montażowy jest większy niż obszar wydruku, stosowany jest ten sam typ przycinania. W środowisku Flex lub Flash Builder: jeśli do parametru printArea
nie zostanie przekazana wartość i ekran jest większy niż obszar wydruku, stosowany jest ten sam typ przycinania.
Jeśli przed drukowaniem użytkownik chce wyskalować obiekt Sprite, należy ustawić wartości dla właściwości skali (patrz flash.display.DisplayObject.scaleX
i flash.display.DisplayObject.scaleY
) przed wywołaniem tej metody, a następnie przywrócić ich oryginalne wartości po wydrukowaniu. Skala obiektu Sprite nie ma związku z parametrem printArea
. Oznacza to, że po określeniu obszaru drukowanego równego 50 x 50 pikseli zostanie wydrukowanych 2500 pikseli. W przypadku zmiany skali obiektu Sprite również drukowane będą piksele (2500 pikseli), ale obiekt Sprite będzie drukowany w określonej skali.
Funkcja drukowania w programie Flash Player obsługuje drukarki obsługujące i nieobsługujące języka PostScript. Drukarki nieobsługujące języka PostScript konwertują wektory na bitmapy.
Parametry
sprite:Sprite — Obiekt Sprite zawierający treść do drukowania.
| |
printArea:Rectangle (default = null ) — Obiekt Rectangle, który określa obszar wydruku.
Szerokość i wysokość prostokąta są wyrażone w pikselach. W drukarce stosowana jest następująca miara wydruku: punkt. Punkty mają stały rozmiar fizyczny (1/72 cala), ale wielkość piksela na ekranie jest uzależniona od rozdzielczości ekranu. Dlatego współczynnik konwersji między pikselami i punktami jest uzależniony od ustawień drukarki oraz od tego, czy obiekt Sprite jest skalowany. Nieskalowany obiekt Sprite, który ma szerokość równą 72 pikselom, będzie na wydruku miał szerokość 1 cala — jeden piksel jest równy jednemu punktowi bez względu na rozdzielczość ekranu. W celu przeliczania calów lub centymetrów na punkty lub twipy (1/20 punktu typograficznego, można korzystać z poniższych równoważników:
Jeśli parametr Jeśli użytkownik nie chce określać wartości dla obiektu | |
options:PrintJobOptions (default = null ) — Dodatkowy parametr, któy określa, czy obiekt jest drukowany jako wektor lub jako bitmapa. Domyślną wartością jest null , co odpowiada drukowaniu w postaci wektorowej. W celu wydrukowania obiektu sprite jako bitmapy należy ustawić dla właściwości printAsBitmap obiektu PrintJobOptions wartość true . Podczas ustalania, czy dla właściwości printAsBitmap zostanie ustawiona wartość true należy pamiętać o następujących sugestiach:
Jeśli wartość | |
frameNum:int (default = 0 ) — Opcjonalny numer, który umożliwia określenie numeru klatki obiektu MovieClip przeznaczonej do drukowania. Przekazanie frameNum nie wywołuje kodu ActionScript dla tej klatki. Jeśli ten parametr zostanie pominięty, a parametr sprite jest obiektem MovieClip, wówczas zostanie wydrukowana bieżąca klatka w obiekcie sprite .
|
Zgłasza
Error — Zgłasza wyjątek, jeśli nie wywołano metody start() lub użytkownik anulował wywołane zadanie drukowania
|
Powiązane elementy interfejsu API
selectPaperSize | () | metoda |
public function selectPaperSize(paperSize:String):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 2 |
Ustawia rozmiar papieru. Akceptowalnymi wartościami parametru paperSize
są stałe w klasie PaperSize. Wywołanie tej metody wpływa na ustawienia drukowania w taki sposób, jakby użytkownik wybrał rozmiar papieru w oknie dialogowym Ustawienia strony lub Drukowanie.
Tę metodę można wywołać w dowolnym momencie. Ta metoda powinna zostać wywołana przed rozpoczęciem zadania drukowania w celu ustawienia domyślnego rozmiaru papieru w oknach dialogowych Ustawienia strony i Drukowanie. Tę metodę można również wywołać w trakcie wykonywania zadania drukowania, w celu ustawienia rozmiaru strony dla zakresu stron w ramach zadania.
import flash.printing.PrintJob; import flash.printing.PaperSize; var myPrintJob:PrintJob = new PrintJob(); myPrintJob.selectPaperSize(PaperSize.ENV_10);
Parametry
paperSize:String — Rozmiar papieru przeznaczony do użytku dla kolejnych stron w zadaniu drukowania
|
Zgłasza
ArgumentError — jeśli parametr paperSize nie jest jedną z akceptowalnych wartości zdefiniowanych w klasie PaperSize.
|
Powiązane elementy interfejsu API
send | () | metoda |
public function send():void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9. |
Wysyła buforowane strony do drukarki po pomyślnych wywołaniach metod start()
lub start2()
oraz addPage()
.
Wywołanie tej metody zakończy się niepowodzeniem, jeśli wywołanie metody start()
lub start2()
nie powiedzie się lub jeśli wywołanie metody addPage()
zwróci wyjątek. Aby uniknąć błędu, należy się upewnić, że metoda start()
lub start2()
zwraca wartość true
, a następnie wychwycić wyjątki addPage()
przed wywołaniem tej metody. Poniższy przykład prezentuje sposób poprawnego sprawdzania, czy wystąpiły błędy, przed wywołaniem tej metody:
var myPrintJob:PrintJob = new PrintJob(); if (myPrintJob.start()) { try { myPrintJob.addPage([params]); } catch(e:Error) { // handle error } myPrintJob.send(); }
Powiązane elementy interfejsu API
showPageSetupDialog | () | metoda |
public function showPageSetupDialog():Boolean
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 2 |
Powoduje wyświetlenie okna dialogowego Ustawienia strony systemu operacyjnego, o ile bieżące środowisko obsługuje takie okno. Aby sprawdzić, czy okno dialogowe Ustawienia strony jest obsługiwane, należy skorzystać z właściwości supportsPageSetupDialog
.
import flash.printing.PrintJob; var myPrintJob:PrintJob = new PrintJob(); if (myPrintJob.supportsPageSetupDialog) { myPrintJob.showPageSetupDialog(); }
Boolean — true , jeśli użytkownik wybierze opcję „OK” w oknie dialogowym Ustawienia strony. To oznacza, że niektóre właściwości PrintJob mogły ulec zmianie. Zwraca false , jeśli użytkownik wybrał opcję „Anuluj” w oknie dialogowym Ustawienia strony.
|
Zgłasza
IllegalOperationError — jeśli system nie obsługuje okna dialogowego Ustawienia strony. Aby sprawdzić, czy okno dialogowe Ustawienia strony jest obsługiwane, należy skorzystać z właściwości supportsPageSetupDialog .
| |
IllegalOperationError — jeśli aktywne jest jakiekolwiek zadanie drukowania (również bieżące).
|
Powiązane elementy interfejsu API
start | () | metoda |
public function start():Boolean
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9., Flash Player 9. |
Wyświetla systemowe okno dialogowe Drukowanie i rozpoczyna buforowanie. W oknie dialogowym Drukowanie można zmieniać ustawienia drukowania. Jeśli metoda PrintJob.start()
zadziała pomyślnie (użytkownik kliknął przycisk OK w oknie dialogowym Drukowanie), wprowadzone zostaną wartości dla następujących właściwości, które reprezentują wybrane ustawienia drukowania:
Właściwość | Typ | Jednostki | Uwagi |
---|---|---|---|
PrintJob.paperHeight | Number | Punkty | Całkowita wysokość papieru. |
PrintJob.paperWidth | Number | Punkty | Całkowita szerokość papieru. |
PrintJob.pageHeight | Number | Punkty | Wysokość zadrukowanego obszaru strony; wszelkie marginesy ustawione przez użytkownika są ignorowane. |
PrintJob.pageWidth | Number | Punkty | Szerokość zadrukowanego obszaru strony; wszelkie marginesy ustawione przez użytkownika są ignorowane. |
PrintJob.orientation | String | „portrait” (flash.printing.PrintJobOrientation.PORTRAIT ) lub „landscape” (flash.printing.PrintJobOrientation.LANDSCAPE ). |
Uwaga: Jeśli użytkowink kliknie przycisk Anuluj w oknie dialogowym Drukuj, nie zostaną wprowadzone wartości właściwości.
Gdy użytkownik kliknie przycisk OK w oknie dialogowym Drukuj, odtwarzacz rozpocznie buforowanie zadania drukowania do systemu operacyjnego. Następnie system operacyjny rozpocznie wyświetlanie informacji dotyczących postępu drukowania, dlatego jak najszybciej należy wywołać metody PrintJob.addPage()
i PrintJob.send()
w celu wysłania stron do bufora. W celu formatowania wydruku można korzystać z właściwości (tylko do odczytu) height, width i orientation, których wartości określa ta metoda.
Przed kolejnymi wywołaniami metod PrintJob.addPage()
i PrintJob.send()
należy sprawdzić, czy metoda zwróci wartość true
(gdy użytkownik kliknie OK w oknie dialogowym Drukuj systemu operacyjnego):
var myPrintJob:PrintJob = new PrintJob(); if(myPrintJob.start()) { // addPage() and send() statements here }
Dla konkretnej instancji zadania drukowania: jeśli dowolny z poniższych przedziałów czasowych trwa dłużej niż 15 sekund, kolejne wywołane metody PrintJob.start()
spowoduje zwrócenie wartości false
:
- Metoda
PrintJob.start()
oraz pierwsze wywołanie metodyPrintJob.addPage()
- Jedna metoda
PrintJob.addPage()
i kolejne wywołaniePrintJob.addPage()
- Ostatnie wywołanie metody
PrintJob.addPage()
oraz wywołanie metodyPrintJob.send()
Boolean — Wartość true , jeśli użytkownik kliknie przycisk OK po wyświetleniu okna dialogowego Drukowanie; wartość false , jeśli użytkownik kliknie przycisk Anuluj lub wystąpi jakikolwiek błąd.
|
Zgłasza
IllegalOperationError — w środowisku AIR 2 (lub późniejszej wersji), jeśli aktualnie aktywne jest inne zadanie PrintJob
|
Powiązane elementy interfejsu API
start2 | () | metoda |
public function start2(uiOptions:PrintUIOptions = null, showPrintDialog:Boolean = true):Boolean
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 2 |
Opcjonalnie wyświetla okno dialogowe Drukowanie systemu operacyjnego, rozpoczyna buforowanie i ustawia właściwości tylko do odczytu obiektu PrintJob.
Parametr uiOptions
umożliwia określenie w wywołaniu, które opcje mają być wyświetlane w oknie dialogowym Drukowanie. Patrz opis klasy PrintUIOptions
. Ten parametr jest ignorowany, jeśli showPrintDialog
ma wartość false.
Nawet gdy showPrintDialog
ma wartość true
, metoda ta może działać inaczej niż metoda start()
. W niektórych systemach operacyjnych metoda start()
powoduje wyświetlenie najpierw okna dialogowego Ustawienia strony, a potem okna dialogowego Drukowanie. Natomiast metoda start2()
nigdy nie powoduje wyświetlenia okna dialogowego Ustawienia strony.
W poniższym przykładzie minimalne i maksymalne ustawienia dla stron w oknie dialogowym Drukowanie są ustawiane zanim zostanie wyświetlone okno dialogowe:
import flash.printing.PrintJob; import flash.printing.PrintUIOptions; var myPrintJob:PrintJob = new PrintJob(); var uiOpt:PrintUIOptions = new PrintUIOptions(); uiOpt.minPage = 1; uiOpt.maxPage = 3; var accepted:Boolean = myPrintJob.start2(uiOpt);
Parametry
uiOptions:PrintUIOptions (default = null ) — Obiekt określający, które opcje są widoczne w wyświetlanym oknie dialogowym Drukowanie. Jeśli parametr showPrintDialog ma wartość false , ta wartość jest ignorowana.
| |
showPrintDialog:Boolean (default = true ) — Określa, czy okno dialogowe Drukowanie jest wyświetlane przed rozpoczęciem zadania drukowania
|
Boolean — Wartość true , jeśli użytkownik kliknął przycisk OK po wyświetleniu okna dialogowego Drukowanie lub jeśli okno Drukowanie nie zostało wyświetlone, ale nie występują błędy; false , jeśli użytkownik kliknął przycisk Anuluj lub jeśli wystąpił błąd.
|
Zgłasza
IllegalOperationError — Jeśli widoczne jest okno dialogowe Ustawienia strony lub jeśli aktywne jest inne zadanie drukowania.
|
Powiązane elementy interfejsu API
terminate | () | metoda |
public function terminate():void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 2 |
Sygnalizuje, że zadanie drukowania powinno zostać zakończone bez wysyłania danych. Tej metody należy używać, gdy zadanie drukowania zostało już zainicjowane przez wywołanie metody start()
lub start2()
, ale żadne strony nie powinny być wysyłane do drukarki. Zwykle metoda terminate()
jest używana tylko do przywracania poprawnego stanu po błędach.
Po wywołaniu tej metody można ponownie wykorzystać instancję klasy PrintJob. Zawsze, gdy jest to możliwe, ustawienia zadania drukowania są zachowywane do ponownego użycia.
addPage()
doda ikonkę jako pojedynczą stronę. Metoda send()
buforuje stronę do drukarki.
package { import flash.printing.PrintJob; import flash.display.Sprite; public class BasicPrintExample extends Sprite { var myPrintJob:PrintJob = new PrintJob(); var mySprite:Sprite = new Sprite(); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawCircle(100, 100, 50); public function BasicPrintExample() { if (myPrintJob.start()) { try { myPrintJob.addPage(mySprite); } catch(e:Error) { // handle error } myPrintJob.send(); } } }
PrintJobExample
w celu utworzenia niewielkiego dokumentu oraz wysłania dokumentu do drukarki. W tym celu należy wykonać następujące czynności:
- Zadeklaruj dwie zmienne typu Sprite o nazwach
sheet1
isheet2
. - Wywołaj metodę
init()
, która przypisze nową instancję Sprite do zmiennychsheet1
isheet2
, a następnie wywoła metodęcreateSheet()
z innymi argumentami. - Metoda
createSheet()
ma następujące funkcje:- Przekazywany obiekt Sprite jest używany do narysowania prostokąta o ciemnoszarym tle z czarnym obramowaniem o szerokości jednego piksela — prostokąt ma szerokość 100 pikseli i wysokość 200 pikseli (położenie x = 0, y = 0).
- Tworzony jest nowy obiekt TextField o nazwie
txt
o takich samych wymiarach, co obiekt Sprite. Dla właściwości wordWrap zostaje ustawiona wartośćtrue
, a dla właściwości zostaje ustawiony ciąg znaków przekazywany jako argumentcreateSheet()
. - Jeśli przekazywany argument Object ma wartość null, należy utworzyć nową instancję Sprite o nazwie
img
— posłuży ona do narysowania białego prostokąta, którego współrzędne i wymiary będą takie same, jak przekazanego argumentu Object. Biały prostokąt jest dodawany do listy wyświetlanej obiektu Sprite przez metodęaddChild()
. - Pole
txt
TextField jest dodawane do listy wyświetlania obiektu Sprite przez metodęaddChild()
.
- W konsturktorze zostaje wywołana metoda drukowania, która jest aktywna (nie jest oznaczona jako komentarz). Metody są bardzo podobne, dla tego metoda
printOnePerPage()
została opisana poniżej. - Metoda
printOnePerPage()
ma następujące funkcje:- Zadeklaruj nowy obiekt PrintJob o nazwie
pj
ipagesToPrint
jako uint. - Otwiera systmowe okno dialogowe drukowania i czeka, aż uzytkownik kliknie przycisk
OK
. - Sprawdza orientację i jeśli wybrana jest orientacja Landscape, zgłasza błąd i kończy działanie.
- Ustawia wysokośc i szerokość stronyu dl
sheet1
isheet2
. - Wysyła
sheet1
isheet2
do bufora drukowania za pomocą metodyaddPage()
. - Jeśli liczba stron do wydrukowania jest > 0, drukowane są wszystkie buforowane strony.
- Zadeklaruj nowy obiekt PrintJob o nazwie
- Następuje wywołanie metody
draw()
, która powoduje zmianę wielkości dwóch właściwości Sprite w celu dopasowania na stole montażowy, a następnie zmienia położenie obiektusheet2
w taki sposób, aby znalazł się po prawej stronie obiektusheet1
.
Uwaga: Konstruktor jest ustawiony w taki sposób, że możliwe jest wybranie jednej z trzech metod drukowania (jeden arkusz na stronę, dwa na stronę lub drukowanie na górnej połowie strony). Poniższy przykład nie będzie działał poprawnie, jeśli dokładnie dwie metody drukowania nie zostaną wyłączone poprzez zastosowanie oznaczenie ich jako komentarzy. W przykładzie zastosowano wywołanie metody printOnePerPage()
.
package { import flash.printing.PrintJob; import flash.printing.PrintJobOrientation; import flash.display.Stage; import flash.display.Sprite; import flash.text.TextField; import flash.geom.Rectangle; public class PrintJobExample extends Sprite { private var sheet1:Sprite; private var sheet2:Sprite; public function PrintJobExample() { init(); printOnePerPage(); // printTwoPerPage(); // printTopHalf(); draw(); } private function init():void { sheet1 = new Sprite(); createSheet(sheet1, "Once upon a time...", {x:10, y:50, width:80, height:130}); sheet2 = new Sprite(); createSheet(sheet2, "There was a great story to tell, and it ended quickly.\n\nThe end.", null); } private function createSheet(sheet:Sprite, str:String, imgValue:Object):void { sheet.graphics.beginFill(0xEEEEEE); sheet.graphics.lineStyle(1, 0x000000); sheet.graphics.drawRect(0, 0, 100, 200); sheet.graphics.endFill(); var txt:TextField = new TextField(); txt.height = 200; txt.width = 100; txt.wordWrap = true; txt.text = str; if(imgValue != null) { var img:Sprite = new Sprite(); img.graphics.beginFill(0xFFFFFF); img.graphics.drawRect(imgValue.x, imgValue.y, imgValue.width, imgValue.height); img.graphics.endFill(); sheet.addChild(img); } sheet.addChild(txt); } private function printOnePerPage():void { var pj:PrintJob = new PrintJob(); var pagesToPrint:uint = 0; if(pj.start()) { if(pj.orientation == PrintJobOrientation.LANDSCAPE) { throw new Error("Without embedding fonts you must print one sheet per page with an orientation of portrait."); } sheet1.height = pj.pageHeight; sheet1.width = pj.pageWidth; sheet2.height = pj.pageHeight; sheet2.width = pj.pageWidth; try { pj.addPage(sheet1); pagesToPrint++; } catch(e:Error) { // do nothing } try { pj.addPage(sheet2); pagesToPrint++; } catch(e:Error) { // do nothing } if(pagesToPrint > 0) { pj.send(); } } } private function printTwoPerPage():void { var pj:PrintJob = new PrintJob(); var pagesToPrint:uint = 0; if(pj.start()) { if(pj.orientation == PrintJobOrientation.PORTRAIT) { throw new Error("Without embedding fonts you must print two sheets per page with an orientation of landscape."); } sheet1.height = pj.pageHeight; sheet1.width = pj.pageWidth/2; sheet2.height = pj.pageHeight; sheet2.width = pj.pageWidth/2; var sheets:Sprite = new Sprite(); sheets.addChild(sheet1); sheets.addChild(sheet2); sheets.getChildAt(1).x = sheets.getChildAt(0).width; try { pj.addPage(sheets); pagesToPrint++; } catch(e:Error) { // do nothing } if(pagesToPrint > 0) { pj.send(); } } } private function printTopHalf():void { var pj:PrintJob = new PrintJob(); var pagesToPrint:uint = 0; if(pj.start()) { if(pj.orientation == PrintJobOrientation.PORTRAIT) { throw new Error("Without embedding fonts you must print the top half with an orientation of landscape."); } sheet1.height = pj.pageHeight; sheet1.width = pj.pageWidth/2; sheet2.height = pj.pageHeight; sheet2.width = pj.pageWidth/2; var sheets:Sprite = new Sprite(); sheets.addChild(sheet1); sheets.addChild(sheet2); sheets.getChildAt(1).x = sheets.getChildAt(0).width; try { pj.addPage(sheets, new Rectangle(0, 0, sheets.width, sheets.height/2)); pagesToPrint++; } catch(e:Error) { // do nothing } if(pagesToPrint > 0) { pj.send(); } } } private function draw():void { var sheetWidth:Number = this.stage.stageWidth/2; var sheetHeight:Number = this.stage.stageHeight; addChild(sheet1); sheet1.width = sheetWidth; sheet1.height = sheetHeight; addChild(sheet2); sheet2.width = sheetWidth; sheet2.height = sheetHeight; sheet2.x = sheet1.width; } } }
package { import flash.display.Sprite; import flash.display.Stage; import flash.geom.Rectangle; import flash.printing.PaperSize; import flash.printing.PrintJob; import flash.printing.PrintJobOrientation; import flash.printing.PrintUIOptions; import flash.text.TextField; public class PrintJobExample extends Sprite { private var bg:Sprite; private var txt:TextField; private var pj:PrintJob; private var uiOpt:PrintUIOptions; public function PrintJobExample():void { var pj = new PrintJob(); uiOpt = new PrintUIOptions(); initPrintJob(); initContent(); draw(); printPage(); } private function printPage():void { if (pj.supportsPageSetupDialog) { pj.showPageSetupDialog(); } if (pj.start2(uiOpt, true)) { try { pj.addPage(this, new Rectangle(0, 0, 100, 100)); } catch (error:Error) { // Do nothing. } pj.send(); } else { txt.text = "Print job terminated"; pj.terminate(); } } private function initContent():void { bg = new Sprite(); bg.graphics.beginFill(0x00FF00); bg.graphics.drawRect(0, 0, 100, 200); bg.graphics.endFill(); txt = new TextField(); txt.border = true; txt.text = "Hello World"; } private function initPrintJob():void { pj.setPaperSize(PaperSize.LEGAL); pj.orientation = PrintJobOrientation.LANDSCAPE; pj.copies = 2; pj.jobName = "Flash test print"; } private function draw():void { addChild(bg); addChild(txt); txt.x = 50; txt.y = 50; } } }
Tue Jun 12 2018, 12:06 PM Z