Pakket | flash.printing |
Klasse | public class PrintJob |
Overerving | PrintJob EventDispatcher Object |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Mobielebrowserondersteuning: Mobiele browsers bieden geen ondersteuning voor deze klasse.
AIR-profielondersteuning: deze functie wordt ondersteund op alle desktopbesturingssystemen, maar niet op mobiele apparaten en ook niet op AIR for TV-apparaten. Met de eigenschap PrintJob.isSupported
kunt u testen op ondersteuning tijdens runtime. Zie AIR-profielondersteuning voor meer informatie over API-ondersteuning voor meerdere profielen.
Gebruik de constructor PrintJob()
om een afdruktaak te maken.
Met de eigenschappen van de klasse PrintJob hebt u bovendien toegang tot de printerinstellingen van de gebruiker, zoals paginahoogte, paginabreedte en afdrukstand. Daarnaast kunt u het document zo configureren dat Flash-inhoud die geschikt is voor de printerinstellingen, dynamisch wordt opgemaakt.
Opmerking:in ActionScript 3.0 is het object PrintJob niet beperkt tot één frame (hetgeen wel het geval was in eerdere versies van ActionScript). Maar omdat het besturingssysteem statusinformatie over het afdrukken weergeeft nadat de gebruiker in het dialoogvenster Afdrukken op de knop OK heeft geklikt, moet u PrintJob.addPage()
en PrintJob.send()
zo spoedig mogelijk aanroepen om pagina's naar de spooler te verzenden. Een vertraging die optreedt bij het frame dat de aanroep PrintJob.send()
bevat, zorgt voor een vertraging van het afdrukproces.
Bovendien geldt er voor het script een time-outlimiet van 15 seconden voor de volgende intervallen:
-
PrintJob.start()
en de eerstePrintJob.addPage()
-
PrintJob.addPage()
en de volgendePrintJob.addPage()
- De laatste
PrintJob.addPage()
enPrintJob.send()
Wanneer een of meer van bovenstaande intervallen langer duren dan 15 seconden, retourneert de volgende aanroep PrintJob.start()
voor de PrintJob-instantie false
en veroorzaakt de volgende PrintJob.addPage()
voor de PrintJob-instantie een runtime-uitzondering in Flash Player of Adobe AIR.
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
active : Boolean [statisch] [alleen-lezen]
Geeft aan of een afdruktaak op dat moment actief is of niet. | PrintJob | ||
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object | ||
copies : int
Het aantal exemplaren dat door het afdruksysteem wordt afgedrukt van de pagina's die vervolgens aan de afdruktaak zijn toegevoegd. | PrintJob | ||
firstPage : int [alleen-lezen]
Het paginanummer van de eerste pagina in het bereik dat door de gebruiker is ingevoerd in het dialoogvenster Afdrukken van het besturingssysteem. | PrintJob | ||
isColor : Boolean [alleen-lezen]
Geeft aan of de momenteel geselecteerde printer met de huidige afdrukinstellingen afdrukken maakt in kleur (true) of met grijswaarden (false). | PrintJob | ||
isSupported : Boolean [statisch] [alleen-lezen]
Geeft aan of de klasse PrintJob op het huidige platform wordt ondersteund (true) of niet (false). | PrintJob | ||
jobName : String
De naam of titel van de afdruktaak. | PrintJob | ||
lastPage : int [alleen-lezen]
Het paginanummer van de laatste pagina in het bereik dat door de gebruiker is ingevoerd in het dialoogvenster Afdrukken van het besturingssysteem. | PrintJob | ||
maxPixelsPerInch : Number [alleen-lezen]
De fysieke resolutie van de geselecteerde printer in pixels per inch. | PrintJob | ||
orientation : String
De afdrukstand van afbeeldingen. | PrintJob | ||
pageHeight : int [alleen-lezen]
De hoogte van het grootste gebied dat in het werkelijk bedrukbare gebied van een pagina kan worden gecentreerd, in punten. | PrintJob | ||
pageWidth : int [alleen-lezen]
De breedte van het grootste gebied dat in het werkelijk bedrukbare gebied van een pagina kan worden gecentreerd, in punten. | PrintJob | ||
paperArea : Rectangle [alleen-lezen]
De grenzen van de printermedia in punten. | PrintJob | ||
paperHeight : int [alleen-lezen]
De algemene papierhoogte, in punten. | PrintJob | ||
paperWidth : int [alleen-lezen]
De algemene papierbreedte, in punten. | PrintJob | ||
printableArea : Rectangle [alleen-lezen]
De grenzen van het afdrukbare gebied van de printermedia in punten. | PrintJob | ||
printer : String
Haalt de printer op of stelt de printer in die voor de huidige afdruktaak moet worden gebruikt. | PrintJob | ||
printers : Vector.<String> [statisch] [alleen-lezen]
Retourneert een lijst met de beschikbare printers als stringnaamwaarden. | PrintJob | ||
supportsPageSetupDialog : Boolean [statisch] [alleen-lezen]
Geeft aan of de Flash-runtimeomgeving ondersteuning biedt voor een afzonderlijk dialoogvenster Pagina-instelling. | PrintJob |
Methode | Gedefinieerd door | ||
---|---|---|---|
PrintJob()
Maakt een PrintJob-object dat u kunt gebruiken om een of meer pagina's af te drukken. | PrintJob | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registreert een gebeurtenislistenerobject bij een object EventDispatcher, zodat de listener een melding van een gebeurtenis ontvangt. | EventDispatcher | ||
addPage(sprite:Sprite, printArea:Rectangle = null, options:PrintJobOptions = null, frameNum:int = 0):void
Verzendt het opgegeven Sprite-object als een enkele pagina naar de afdrukspooler. | PrintJob | ||
Verzendt een gebeurtenis naar de gebeurtenisstroom. | EventDispatcher | ||
Controleert of het object EventDispatcher listeners heeft geregistreerd voor een specifiek type gebeurtenis. | EventDispatcher | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
Verwijdert een listener uit het object EventDispatcher. | EventDispatcher | ||
Stelt het papierformaat in. | PrintJob | ||
Verstuurt gespoolde aanroepen naar de printer na succesvolle aanroepen naar de methoden start(), start2() en addPage(). | PrintJob | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Geeft het dialoogvenster Pagina-instelling van het besturingssysteem weer als de huidige omgeving hiervoor ondersteuning biedt. | PrintJob | ||
Hiermee wordt het dialoogvenster Afdrukken van het besturingssysteem weergegeven en wordt er met spoolen begonnen. | PrintJob | ||
Hiermee wordt optioneel het dialoogvenster Afdrukken van het besturingssysteem weergegeven, wordt het spoolen gestart en worden eventueel de waarden voor de alleen-lezen-eigenschappen van PrintJob aangepast. | PrintJob | ||
Geeft aan dat de afdruktaak zonder verzenden moet worden beëindigd. | PrintJob | ||
Geeft de tekenreeksweergave van dit object weer, geformatteerd volgens de locatiespecifieke conventies. | Object | ||
Retourneert een tekenreeksrepresentatie van het opgegeven object. | Object | ||
Retourneert de primitieve waarde van het opgegeven object. | Object | ||
Controleert of een gebeurtenislistener is geregistreerd bij dit object EventDispatcher of een van de voorouders voor het opgegeven type gebeurtenis. | EventDispatcher |
active | eigenschap |
active:Boolean
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
Geeft aan of een afdruktaak op dat moment actief is of niet. Een afdruktaak is actief (de eigenschap heeft de waarde true
) als aan een van de volgende voorwaarden wordt voldaan:
- Het dialoogvenster Pagina-instelling of het dialoogvenster Afdrukken wordt weergegeven.
- De methode
start()
ofstart2()
is aangeroepen en heeft als retourwaardetrue
, en de methodesend()
ofterminate()
is niet aangeroepen.
Als deze eigenschap de waarde true
heeft en u roept de methode showPageSetupDialog()
, start()
of start2()
aan, dan wordt er een uitzondering gegenereerd door de runtime.
Implementatie
public static function get active():Boolean
Verwante API-elementen
copies | eigenschap |
copies:int
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
Het aantal exemplaren dat door het afdruksysteem wordt afgedrukt van de pagina's die vervolgens aan de afdruktaak zijn toegevoegd. Deze waarde is het aantal exemplaren dat door de gebruiker is ingevoerd in het dialoogvenster Afdrukken van het besturingssysteem. Als het aantal exemplaren niet in het dialoogvenster Afdrukken is weergegeven of als dit dialoogvenster niet aan de gebruiker is getoond, is de waarde 1 (tenzij deze waarde is gewijzigd door toepassingscode).
Implementatie
public function get copies():int
public function set copies(value:int):void
firstPage | eigenschap |
firstPage:int
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
Het paginanummer van de eerste pagina in het bereik dat door de gebruiker is ingevoerd in het dialoogvenster Afdrukken van het besturingssysteem. Deze eigenschap is nul als de gebruiker heeft aangegeven dat alle pagina's moeten worden afgedrukt, als het paginabereik niet in het dialoogvenster Afdrukken is weergegeven, of als het dialoogvenster Afdrukken niet aan de gebruiker is getoond.
Implementatie
public function get firstPage():int
isColor | eigenschap |
isColor:Boolean
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
Geeft aan of de momenteel geselecteerde printer met de huidige afdrukinstellingen afdrukken maakt in kleur (true
) of met grijswaarden (false
).
De waarde is true
als er niet kan worden vastgesteld of er in kleur of met grijswaarden wordt afgedrukt.
Implementatie
public function get isColor():Boolean
isSupported | eigenschap |
jobName | eigenschap |
jobName:String
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
De naam of titel van de afdruktaak. De taaknaam wordt doorgaans door het besturingssysteem gebruikt voor de titel van de taak in de afdrukwachtrij of voor de standaardnaam van de taak als deze naar een bestand wordt afgedrukt.
Als u start()
of start2()
niet hebt aangeroepen en u geen waarde voor de eigenschap hebt ingesteld, dan heeft deze eigenschap de waarde null
.
Stel bij elke afdruktaak die u uitvoert met een instantie van PrintJob, deze eigenschap in voordat u de methode start()
of start2()
aanroept.
De standaardwaarde is null
.
Implementatie
public function get jobName():String
public function set jobName(value:String):void
Gegenereerde uitzondering
IllegalOperationError — als er door code een poging wordt gedaan de eigenschap in te stellen, terwijl de eigenschap active de waarde true heeft.
|
lastPage | eigenschap |
lastPage:int
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
Het paginanummer van de laatste pagina in het bereik dat door de gebruiker is ingevoerd in het dialoogvenster Afdrukken van het besturingssysteem. Deze eigenschap is nul als de gebruiker heeft aangegeven dat alle pagina's moeten worden afgedrukt, als het paginabereik niet in het dialoogvenster Afdrukken is weergegeven, of als het dialoogvenster Afdrukken niet aan de gebruiker is getoond.
Implementatie
public function get lastPage():int
maxPixelsPerInch | eigenschap |
maxPixelsPerInch:Number
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
De fysieke resolutie van de geselecteerde printer in pixels per inch. De waarde wordt berekend op basis van de huidige afdrukinstellingen die door het besturingssysteem worden doorgegeven.
Als de resolutie niet kan worden vastgesteld, is de waarde een standaardwaarde. De standaardwaarde is 600 ppi op Linux en 360 ppi op Mac OS. In Windows is de printerresolutie altijd beschikbaar en is er dus geen standaardwaarde nodig.
Implementatie
public function get maxPixelsPerInch():Number
orientation | eigenschap |
orientation:String
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9 - read only, AIR 1.0 - read only, AIR 2 - read-write |
De afdrukstand van afbeeldingen. De geaccepteerde waarden zijn gedefinieerd als constanten in de klasse PrintJobOrientation.
Opmerking: Om de afdrukstand in te stellen in het dialoogvenster Pagina-instelling en het dialoogvenster Afdrukken, moet u in AIR 2 of hoger deze eigenschap instellen voordat u een afdruktaak start. Om de afdrukstand voor een paginabereik in de taak in te stellen, stelt u de eigenschap in terwijl de afdruktaak wordt uitgevoerd (nadat start()
of start2()
is aangeroepen).
Implementatie
public function get orientation():String
public function set orientation(value:String):void
Verwante API-elementen
pageHeight | eigenschap |
pageHeight:int
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9. |
De hoogte van het grootste gebied dat in het werkelijk bedrukbare gebied van een pagina kan worden gecentreerd, in punten. Door de gebruiker ingestelde marges worden genegeerd. Deze eigenschap is alleen beschikbaar na een aanroep van de methode PrintJob.start()
.
Opmerking: Deze eigenschap is vervangen in AIR 2 en hoger. Gebruik in plaats hiervan printableArea
, dat het bedrukbare gebied meet in fractionele punten en niet-gecentreerde bedrukbare gebieden correct beschrijft.
Implementatie
public function get pageHeight():int
Verwante API-elementen
pageWidth | eigenschap |
pageWidth:int
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0 |
De breedte van het grootste gebied dat in het werkelijk bedrukbare gebied van een pagina kan worden gecentreerd, in punten. Door de gebruiker ingestelde marges worden genegeerd. Deze eigenschap is alleen beschikbaar na een aanroep van de methode PrintJob.start()
.
Opmerking: Deze eigenschap is vervangen in AIR 2 en hoger. Gebruik in plaats hiervan printableArea
, dat het bedrukbare gebied meet in fractionele punten en niet-gecentreerde bedrukbare gebieden correct beschrijft.
Implementatie
public function get pageWidth():int
Verwante API-elementen
paperArea | eigenschap |
paperHeight | eigenschap |
paperHeight:int
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9. |
De algemene papierhoogte, in punten. Deze eigenschap is alleen beschikbaar na een aanroep van de methode PrintJob.start()
.
Opmerking: Deze eigenschap is vervangen in AIR 2 en hoger. Gebruik in plaats hiervan paperArea
, dat de papierafmetingen meet in fractionele punten.
Implementatie
public function get paperHeight():int
Verwante API-elementen
paperWidth | eigenschap |
paperWidth:int
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9. |
De algemene papierbreedte, in punten. Deze eigenschap is alleen beschikbaar na een aanroep van de methode PrintJob.start()
.
Opmerking: Deze eigenschap is vervangen in AIR 2 en hoger. Gebruik in plaats hiervan paperArea
, dat de papierafmetingen meet in fractionele punten.
Implementatie
public function get paperWidth():int
Verwante API-elementen
printableArea | eigenschap |
printableArea:Rectangle
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
De grenzen van het afdrukbare gebied van de printermedia in punten. Deze waarde gebruikt hetzelfde coördinatensysteem dat wordt gebruikt voor volgende aanroepen naar addPage()
.
Implementatie
public function get printableArea():Rectangle
printer | eigenschap |
printer:String
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
Haalt de printer op of stelt de printer in die voor de huidige afdruktaak moet worden gebruikt. De string die aan de setter is doorgegeven en door de getter is geretourneerd, moet overeenkomen met een van de strings in de Array die door methode printers()
wordt geretourneerd. Stel de waarde in op null
om aan te geven dat de standaardprinter moet worden gebruikt. Op besturingssystemen waarvoor de standaardprinter niet kan worden vastgesteld heeft deze eigenschap de waarde null
.
import flash.printing.PrintJob; var myPrintJob:PrintJob = new PrintJob(); myPrintJob.printer = "HP_LaserJet_1"; myPrintJob.start();
Door het instellen van de waarde van deze eigenschap, wordt er onmiddellijk geprobeerd de printer te selecteren. Als het selecteren van de printer mislukt, wordt de waarde van deze eigenschap weer ingesteld op de vorige waarde. Nadat u de printerwaarde hebt ingesteld kunt u nagaan of het instellen daadwerkelijk is gelukt door de waarde handmatig te controleren. Op deze manier kunt u vaststellen of de waarde overeenkomt met de door u ingestelde waarde.
De eigenschap printer
van een actieve afdruktaak kan niet worden gewijzigd. Het wijzigen van deze eigenschap mislukt als dit gebeurt nadat de methode start()
of start2()
succesvol is aangeroepen en voordat send()
of terminate()
is aangeroepen.
Implementatie
public function get printer():String
public function set printer(value:String):void
printers | eigenschap |
printers:Vector.<String>
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
Retourneert een lijst met de beschikbare printers als stringnaamwaarden. De lijst wordt niet vooraf berekend, maar wordt gegenereerd wanneer de functie wordt aangeroepen. Als er geen printers beschikbaar zijn of als afdrukken niet door het systeem wordt ondersteund, is de waarde null
. Als het systeem wel ondersteuning voor afdrukken biedt maar niet over de functionaliteit beschikt om een lijst met printers te retourneren, is de waarde een vector met één enkel element (de eigenschap length
hiervan heeft de waarde 1). In dit geval is het enkele element de daadwerkelijke printernaam of een standaardnaam als de huidige printernaam niet kan worden vastgesteld.
Implementatie
public static function get printers():Vector.<String>
supportsPageSetupDialog | eigenschap |
supportsPageSetupDialog:Boolean
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
Geeft aan of de Flash-runtimeomgeving ondersteuning biedt voor een afzonderlijk dialoogvenster Pagina-instelling. Als deze eigenschap de waarde true
heeft, kunt u de methode showPageSetupDialog()
aanroepen om het dialoogvenster Pagina-instelling van het besturingssysteem weer te geven.
Implementatie
public static function get supportsPageSetupDialog():Boolean
Verwante API-elementen
PrintJob | () | Constructor |
public function PrintJob()
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Maakt een PrintJob-object dat u kunt gebruiken om een of meer pagina's af te drukken. Nadat u een object PrintJob hebt gemaakt,moet u (in onderstaande volgorde) de methoden PrintJob.start()
, PrintJob.addPage()
en vervolgens PrintJob.send()
gebruiken om de afdruktaak naar de printer te verzenden.
U kunt bijvoorbeeld de tekst van de tijdelijke aanduiding [params]
van de methodeaanroepen myPrintJob.addPage()
vervangen door aangepaste parameters, zoals in de volgende code wordt getoond:
// 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(); }
In AIR 2 of hoger kunt meerdere PrintJob-instanties maken en gebruiken. Eigenschappen die voor de PrintJob-instantie zijn ingesteld, blijven geldig nadat het afdrukken is voltooid. Hierdoor kunt u een PrintJob-instantie opnieuw gebruiken en de door een gebruiker geselecteerde afdrukvoorkeuren behouden, terwijl er voor andere inhoud in uw toepassing andere afdrukvoorkeuren kunnen worden ingesteld. U kunt voor inhoud in Flash Player en in versies van AIR ouder dan AIR 2 geen tweede PrintJob-object maken als het eerste object nog steeds actief is. Wanneer u een tweede PrintJob-object maakt (door new PrintJob()
aan te roepen) terwijl het eerste PrintJob-object nog actief is, wordt het tweede PrintJob-object niet gemaakt. Het is daarom verstandig de waarde myPrintJob
te controleren voordat u een tweede PrintJob-object maakt.
Gegenereerde uitzondering
IllegalOperationError — In Flash Player en in versies van AIR ouder dan AIR 2, wordt er een uitzondering gegenereerd als een ander PrintJob-object nog steeds actief is.
|
Verwante API-elementen
addPage | () | methode |
public function addPage(sprite:Sprite, printArea:Rectangle = null, options:PrintJobOptions = null, frameNum:int = 0):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9. |
Verzendt het opgegeven Sprite-object als een enkele pagina naar de afdrukspooler. Voordat u deze methode gebruikt, moet u een PrintJob-object maken en vervolgens start()
of start2()
gebruiken. Nadat u addPage()
een of meerdere keren hebt aangeroepen voor een afdruktaak, gebruikt u send()
om de gespoolde pagina's naar de printer te versturen. Met andere woorden, nadat u een PrintJob-object hebt gemaakt gebruikt u (in deze volgorde) start()
of start2()
, addPage()
en vervolgens send()
om de afdruktaak naar de printer te versturen. U kunt na één aanroep naar start()
, addPage()
meerdere keren aanroepen om meerdere pagina's in een afdruktaak af te drukken.
Als addPage()
een uitzondering in Flash Player veroorzaakt (omdat u bijvoorbeeld start()
niet hebt aangeroepen of omdat de gebruiker de afdruktaak heeft geannuleerd), mislukken alle volgende aanroepen naar addPage()
. Als eerdere aanroepen naar addPage()
echter wel zijn gelukt, verzendt de laatste send()
-opdracht de gespoolde pagina's naar de printer.
Als de afdruktaak meer dan 15 seconden nodig heeft om de bewerking addPage()
te voltooien, genereert Flash Player een uitzondering voor de volgende aanroep naar addPage()
.
Als u een waarde voor de parameter printArea
doorgeeft, worden de x
- en y
-coördinaten van de rechthoek printArea
in de linkerbovenhoek (coördinaat 0,0) van het afdrukbare gebied van de pagina geplaatst. De alleen-lezen eigenschappen pageHeight
en pageWidth
geven het afdrukbare gebied aan dat wordt ingesteld door start()
. Afdrukken worden uitgelijnd ten opzichte van de linkerbovenhoek van het afdrukbare gebied van de pagina. Als het gebied dat in printArea
is gedefinieerd groter is dan het afdrukbare gebied van de pagina, wordt de afdruk daarom afgekapt aan de rechterzijde of aan de onderzijde (of beide) van het gebied dat is gedefinieerd in printArea
. Als u in Flash Professional geen waarde voor printArea
hebt doorgegeven en het werkgebied is groter dan het afdrukbare gebied, wordt de afdruk op dezelfde manier afgekapt. Als u in Flex of Flash Builder geen waarde voor printArea
hebt doorgegeven en het scherm is groter dan het afdrukbare gebied, wordt de afbeelding op dezelfde manier afgekapt.
Wanneer u een object Sprite wilt schalen voordat u het gaat afdrukken, stelt u de eigenschappen (zie flash.display.DisplayObject.scaleX
en flash.display.DisplayObject.scaleY
) in voordat u deze methode aanroept en zet u de eigenschappen na het afdrukken terug naar de oorspronkelijke waarden. De schaal van een object Sprite is niet gerelateerd aan printArea
. Wanneer u een afdrukgebied van 50 x 50 pixels opgeeft, worden er 2500 pixels afgedrukt. Wanneer u het object Sprite hebt geschaald, worden ook 2500 pixels afgedrukt, maar wordt het object met de geschaalde grootte afgedrukt.
De afdrukfunctie van Flash Player biedt ondersteuning voor PostScript- en niet-PostScript-printers. Bij niet-PostScript-printers worden vectoren in bitmaps omgezet.
Parameters
sprite:Sprite — De sprite die de af te drukken inhoud bevat.
| |
printArea:Rectangle (default = null ) — Een object Rectangle dat het afdrukgebied aangeeft.
De hoogte en breedte van een rechthoek worden uitgedrukt in pixelwaarden. Een printer werkt met punten als afdrukeenheden. Punten hebben een vaste fysieke grootte (1/72 inch), maar de grootte van een pixel op een beeldscherm is afhankelijk van de resolutie van het beeldscherm. Hierdoor is de conversiefactor tussen pixels en punten afhankelijk van de printerinstellingen en van het feit of de sprite al dan niet is geschaald. Een niet-geschaalde sprite die 72 pixels breed is, wordt ongeacht de schermresolutie met een breedte van één inch afgedrukt, waarbij één punt gelijk is aan één pixel. U kunt de volgende equivalenten gebruiken om inches of centimeters om te zetten in twips of punten (een twip is 1/20 punt):
Als u de parameter Wanneer u geen waarde wilt opgeven voor | |
options:PrintJobOptions (default = null ) — Een optionele parameter die aangeeft of de afbeelding als vector of als bitmap moet worden afgedrukt. De standaardwaarde is null . Deze waarde vertegenwoordigt een aanvraag tot vectorafdrukken. Wanneer u sprite als een bitmap wilt afdrukken, stelt u de eigenschap printAsBitmap van het object PrintJobOptions in op true . Houd rekening met de volgende suggesties als u printAsBitmap op true wilt instellen:
Wanneer | |
frameNum:int (default = 0 ) — Een optioneel getal waarmee u kunt aangeven welk frame van een MovieClip-object moet worden afgedrukt. Voor frames waarvoor u een frameNum doorgeeft, wordt ActionScript niet geactiveerd. Als u deze parameter weglaat en de parameter sprite is een MovieClip-object, wordt het huidige frame in sprite afgedrukt.
|
Gegenereerde uitzondering
Error — Hiermee wordt een uitzondering gegenereerd wanneer u start() niet hebt aangeroepen of wanneer de gebruiker de afdruktaak heeft geannuleerd.
|
Verwante API-elementen
selectPaperSize | () | methode |
public function selectPaperSize(paperSize:String):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
Stelt het papierformaat in. De geaccepteerde waarden voor de parameter paperSize
zijn constanten in de klasse PaperSize. Het aanroepen van deze methode heeft hetzelfde effect op de afdrukinstellingen als wanneer de gebruiker een papierformaat kiest in het dialoogvenster Pagina-instelling of in het dialoogvenster Afdrukken.
U kunt deze methode op elk gewenst moment aanroepen. Roep deze methode aan voordat u begint met een afdruktaak om het standaardpapierformaat in te stellen in het dialoogvenster Pagina-instelling en het dialoogvenster Afdrukken. Roep deze methode aan als er een afdruktaak actief is om het papierformaat in te stellen voor een paginabereik in de taak.
import flash.printing.PrintJob; import flash.printing.PaperSize; var myPrintJob:PrintJob = new PrintJob(); myPrintJob.selectPaperSize(PaperSize.ENV_10);
Parameters
paperSize:String — Het papierformaat dat voor de volgende pagina's in de afdruktaak moet worden gebruikt.
|
Gegenereerde uitzondering
ArgumentError — als de parameter paperSize niet een van de geaccepteerde waarden is die zijn gedefinieerd in de klasse PaperSize.
|
Verwante API-elementen
send | () | methode |
public function send():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9. |
Verstuurt gespoolde aanroepen naar de printer na succesvolle aanroepen naar de methoden start()
, start2()
en addPage()
.
Deze methode mislukt als de aanroep naar de methode start()
of start2()
mislukt of als er een uitzondering wordt gegenereerd bij een aanroep naar de methode addPage()
. Om een fout te vermijden, controleert u voordat u deze methode aanroept of de methode start()
of start2()
true
retourneert en vangt u eventuele addPage()
-uitzonderingen af. In het volgende voorbeeld wordt gedemonstreerd hoe u op de juiste wijze op fouten kunt controleren voordat u deze methode aanroept:
var myPrintJob:PrintJob = new PrintJob(); if (myPrintJob.start()) { try { myPrintJob.addPage([params]); } catch(e:Error) { // handle error } myPrintJob.send(); }
Verwante API-elementen
showPageSetupDialog | () | methode |
public function showPageSetupDialog():Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
Geeft het dialoogvenster Pagina-instelling van het besturingssysteem weer als de huidige omgeving hiervoor ondersteuning biedt. Gebruik de supportsPageSetupDialog
-eigenschap om te bepalen of Pagina-instelling wordt ondersteund.
import flash.printing.PrintJob; var myPrintJob:PrintJob = new PrintJob(); if (myPrintJob.supportsPageSetupDialog) { myPrintJob.showPageSetupDialog(); }
Boolean — true als de gebruiker OK kiest in het dialoogvenster Pagina-instelling. Geeft aan dat sommige PrintJob-eigenschappen mogelijk zijn gewijzigd. Retourneert false als de gebruiker Annuleren kiest in het dialoogvenster Pagina-instelling.
|
Gegenereerde uitzondering
IllegalOperationError — als het systeem geen ondersteuning biedt voor Pagina-instelling. Gebruik de supportsPageSetupDialog -eigenschap om te bepalen of Pagina-instelling wordt ondersteund.
| |
IllegalOperationError — als er een afdruktaak actief is (inclusief de huidige afdruktaak).
|
Verwante API-elementen
start | () | methode |
public function start():Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9., Flash Player 9. |
Hiermee wordt het dialoogvenster Afdrukken van het besturingssysteem weergegeven en wordt er met spoolen begonnen. In het dialoogvenster Afdrukken kan de gebruiker de afdrukinstellingen wijzigen. Wanneer de methode PrintJob.start()
lukt (nadat de gebruiker in het dialoogvenster Afdrukken op OK heeft geklikt), worden de volgende eigenschappen gevuld op basis van de afdrukinstellingen die door de gebruiker zijn gekozen:
Eigenschap | Type | Eenheden | Opmerkingen |
---|---|---|---|
PrintJob.paperHeight | Number | Punten | Totale papierhoogte |
PrintJob.paperWidth | Number | Punten | Totale papierbreedte. |
PrintJob.pageHeight | Number | Punten | De hoogte van het afdrukbare gebied van de pagina. Marges die door de gebruiker zijn ingesteld, worden genegeerd. |
PrintJob.pageWidth | Number | Punten | De breedte van het afdrukbare gebied van de pagina. Marges die door de gebruiker zijn ingesteld, worden genegeerd. |
PrintJob.orientation | String | Staand (flash.printing.PrintJobOrientation.PORTRAIT ) of liggend (flash.printing.PrintJobOrientation.LANDSCAPE ). |
Opmerking: wanneer de gebruiker in het dialoogvenster Afdrukken op Annuleren klikt, worden de eigenschappen niet gevuld.
Wanneer de gebruiker in het dialoogvenster Afdrukken op OK klikt, wordt een afdruktaak naar het besturingssysteem gespoold. Omdat het besturingssysteem vervolgens informatie over de voortgang van het afdrukken aan de gebruiker toont, moet u PrintJob.addPage()
en PrintJob.send()
zo spoedig mogelijk aanroepen om de pagina's naar de spooler te verzenden. U kunt de alleen-lezen-eigenschappen voor hoogte, breedte en afdrukstand gebruiken die met deze methode worden gevuld om de lay-out van de afdruk te bepalen.
Voer een test uit om te controleren of deze methode true
retourneert (als de gebruiker in het dialoogvenster Afdrukken van het besturingssysteem op OK klikt) voordat er nieuwe aanroepen worden uitgevoerd van PrintJob.addPage()
en PrintJob.send()
:
var myPrintJob:PrintJob = new PrintJob(); if(myPrintJob.start()) { // addPage() and send() statements here }
Wanneer een van de volgende intervallen voor de instantie van deze afdruktaak langer duurt dan 15 seconden, retourneert de volgende aanroep van PrintJob.start()
false
PrintJob.start()
en de eerstePrintJob.addPage()
- Eén
PrintJob.addPage()
en de volgendePrintJob.addPage()
- De laatste
PrintJob.addPage()
enPrintJob.send()
Boolean — De waarde true als de gebruiker op OK klikt wanneer het dialoogvenster Afdrukken wordt weergegeven. De waarde false als de gebruiker op Annuleren klikt of als er een fout optreedt.
|
Gegenereerde uitzondering
IllegalOperationError — als er op dat moment een andere afdruktaak actief is (in AIR 2 of hoger).
|
Verwante API-elementen
start2 | () | methode |
public function start2(uiOptions:PrintUIOptions = null, showPrintDialog:Boolean = true):Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
Hiermee wordt optioneel het dialoogvenster Afdrukken van het besturingssysteem weergegeven, wordt het spoolen gestart en worden eventueel de waarden voor de alleen-lezen-eigenschappen van PrintJob aangepast.
Met de uiOptions
-parameter kan de oproeper bepalen welke opties er in het het dialoogvenster Afdrukken worden weergegeven. Zie de PrintUIOptions
-klasse. Deze parameter wordt genegeerd als showPrintDialog
false is.
Zelfs als showPrintDialog
de waarde true
heeft, kan het gedrag van deze methode anders zijn dan dat van de methode start()
. Op sommige besturingssystemen geeft start()
het dialoogvenster Pagina-instelling weer, gevolgd door het dialoogvenster Afdrukken. Bij start2()
daarentegen wordt het dialoogvenster Pagina-instelling nooit weergegeven.
In het volgende voorbeeld worden de minimale en maximale pagina-instellingen in het dialoogvenster Afdrukken ingesteld voordat het dialoogvenster aan de gebruiker wordt getoond:
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);
Parameters
uiOptions:PrintUIOptions (default = null ) — Een object dat bepaalt welke opties worden weergegeven in het dialoogvenster Afdrukken dat aan de gebruiker wordt getoond. Als de parameter showPrintDialog de waarde false heeft, wordt deze waarde gegeneerd.
| |
showPrintDialog:Boolean (default = true ) — Of het dialoogvenster Afdrukken wordt getoond aan de gebruiker of niet voordat de afdruktaak wordt gestart.
|
Boolean — De waarde true als de gebruiker op OK klikt wanneer het dialoogvenster Afdrukken wordt weergegeven of als het dialoogvenster Afdrukken niet wordt weergegeven en er geen fout is. De waarde false als de gebruiker op Annuleren klikt of als er een fout optreedt.
|
Gegenereerde uitzondering
IllegalOperationError — Als het dialoogvenster Pagina-instelling wordt weergegeven of als een andere afdruktaak op dat moment actief is.
|
Verwante API-elementen
terminate | () | methode |
public function terminate():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
Geeft aan dat de afdruktaak zonder verzenden moet worden beëindigd. Gebruik deze methode wanneer er al een afdruktaak is gestart door een aanroep naar start()
of start2()
, maar er nog geen pagina's naar de printer moeten worden gestuurd. terminate()
wordt doorgaans alleen gebruikt nadat er een fout is opgetreden en er een herstelbewerking moet worden uitgevoerd.
Nadat deze methode is aangeroepen, kan de instantie van PrintJob opnieuw worden gebruikt. Waar mogelijk worden de instellingen voor de afdruktaak behouden, zodat deze in volgende taken opnieuw kunnen worden gebruikt
addPage()
-methode de sprite als één pagina toe. De send()
-methode spoolt de pagina naar de printer.
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
gebruikt om een klein document te maken en het document vervolgens naar de printer te verzenden. Hierbij moeten de volgende stappen worden uitgevoerd:
- Declareer twee variabelen van het type Sprite met de naam
sheet1
ensheet2
. - Roep
init()
aan, zodat er een nieuwe instantie Sprite wordt toegewezen aansheet1
ensheet2
en waarvoor vervolgenscreateSheet()
wordt aangeroepen met andere argumenten. createSheet()
doet het volgende:- Het doorgegeven object Sprite wordt gebruikt om een rechthoek te tekenen van 100 pixels breed en 200 pixels hoog, op x = 0 en y = 0, met een lichtgrijze achtergrond en een zwarte rand van één pixel.
- Hiermee wordt een nieuw object TextField gemaakt met de naam
txt
met dezelfde afmetingen als de Sprite. De eigenschap WordWrap wordt ingesteld optrue
en geeft de eigenschap text voor de tekenreeks door als argument voorcreateSheet()
. - Wanneer het doorgegeven argument Object niet nul is, wordt een nieuwe instantie Sprite gemaakt met de naam
img
die wordt gebruikt om een witte rechthoek te tekenen met de coördinaten en afmetingen van het doorgegeven object. De witte rechthoek wordt aan het weergaveoverzicht van het object sprite toegevoegd door middel vanaddChild()
. - Het TextField
txt
wordt aan het weergaveoverzicht van het object Sprite toegevoegd door middel vanaddChild()
.
- In de constructor wordt vervolgens de geactiveerde afdrukmethode (zonder opmerkingen) aangeroepen. Aangezien deze methoden sterk overeenkomen, wordt
printOnePerPage()
hieronder beschreven. printOnePerPage()
doet het volgende:- Declareert een nieuw object PrintJob met de naam
pj
enpagesToPrint
als een uint. - Opent het afdrukdialoogvenster van het besturingssysteem en wacht tot de gebruiker klikt op
OK
- Controleert de afdrukstand en als de optie Liggend is geselecteerd, resulteert dat in een fout en wordt het venster gesloten.
- Stelt de paginahoogte en -breedte in voor
sheet1
ensheet2
. - Verzendt
sheet1
ensheet2
naar de afdrukspooler metaddPage()
. - Wanneer het aantal pagina's dat moet worden afgedrukt groter is dan 0, worden alle gespoolde pagina's afgedrukt.
- Declareert een nieuw object PrintJob met de naam
- De methode
draw()
wordt aangeroepen om de grootte van de twee Sprite-eigenschappen aan het werkgebied aan te passen ensheet2
rechts te plaatsen vansheet1
.
Opmerking: de constructor is zodanig ingesteld dat een van de drie afdrukmethoden (één blad per pagina, twee bladen per pagina, of afdrukken op de bovenste helft van de pagina) naar wens kan worden geselecteerd. Dit voorbeeld werkt alleen wanneer twee van de drie afdrukmethoden met codeopmerkingen zijn uitgeschakeld. Het voorbeeld is zodanig opgesteld dat printOnePerPage()
wordt aangeroepen.
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; } } }
Wed Jun 13 2018, 11:42 AM Z