Actionscript Info

var my_pj:PrintJob = new PrintJob();
my_pj.start();
my_pj.addPage(0);
my_pj.send();
delete my_pj;

 

 

Mit dem dem PrintJob Objekt kann man ganz gezielt Inhalte des Flashfilms definieren, die als Seiten an die Druckwarteschlange übergeben werden.
Links sieht man die Reihenfolge der Befehle. Besser ist jedoch die Schreibweise darunter, um den Erfolg der Methoden zu überprüfen.

Zuerst wird das Print Objekt erzeugt, dann folgt die start() Methode. Sie öffnet die Druckdialogfelder des Betriebsystems und gibt bei Erfolg den Wert true zurück. Es folgen ein oder mehrere addPage() Befehle. Mehr zu den mögichen Parametern später. Die Variable pageCount überprüft auch hier den Erfolg. Nachdem die Seiten hinzugefügt wurden, folgt die send() Methode, welche die Seiten an den Drucker sendet.
Zum Abschluss wird das Durckobjekt gelöscht.

var pageCount:Number = 0;
var my_pj:PrintJob = new PrintJob ();
if (my_pj.start ())
{
if (my_pj.addPage (0))
{
pageCount++;
}
}
if (pageCount > 0)
{
my_pj.send ();
}
delete my_pj;

addPage(target:Object, [printArea:Object], [options:Object], [frameNum:Number]) : Boolean

Beispiel:

my_pj.addPage("dance_mc", {xMin:0,xMax:400,yMin:0,yMax:600},{printAsBitmap:true}, 3)

target: Object
Eine Zahl oder ein String; die Stufe oder der Instanzname des zu druckenden Movieclips. Um den Hauptfilm anzugeben, gebe die Zahl 0 ein. Importierte SWF Filme bekommen die Zahl des Levels. Instanznamen eines MCs werden als String in Anführungsstrichen aufgeführt..
printArea:Object
Der druckbare Bereich wird hier definiert,
{xMin:0,xMax:400,yMin:0,yMax:500}
Im obigen Beispiel wird von der linken oberen Kante des Hauptfilms oder dem Mittelpunkt eines MCs 400 Pixel Weite und eine Höhe von 500 Pixel gedruckt.
Gibt man für print Area keine Werte oder null ein, wird der gesamte Bereich gedruckt.
my_pj.addPage("dance_mc", null, {printAsBitmap:true}, 3)
options:Object
{printAsBitmap:Boolean}
Gibt an, ob im Vektor oder Bitmap Format gedruckt wird. Gibt man nichts ein oder null, wird im Vektorformat gedruckt. Das funktioniert nur bei Post Script fähigen Druckern.
{printAsBitmap:true} druckt Pixelgrafik oder {printAsBitmap:false} druckt Vektorgrafik.
frameNum:Number
Gibt an welches Bild der Zeitleiste gedruckt werden soll.
addPage gibt den Wert true bei Erfolg zurück.

achdem man PrintJob.start() aufgerufen hat, kann das Dokument die Druckereinstellungen des Benutzers lesen, wie beispielsweise Höhe, Breite und Ausrichtung der Seite. Damit können Sie Ihr Dokument so konfigurieren, dass dynamisch Flash-Inhalte formatiert werden, die für die Druckereinstellungen geeignet sind.
Folgende Eigenschaften können aufgerufen werden:
orientation:String
Die Bildausrichtung für den Druck. Die Werte sind "landscape" oder "portrait"
pageHeight:Number
Die Höhe des tatsächlich druckbaren Bereichs der Seite, in Punkt.
pageWidth:Number
Die Breite des tatsächlich druckbaren Bereichs der Seite, in Punkt.
paperHeight:Number
Die Gesamthöhe des Papiers, in Punkt.
paperWidth:Number
Die Gesamtbreite des Papiers, in Punkt.
Somit ließe sich je nach Druckausrichtung eine andere addPage() Methode aufrufen.
if (my_pj.orientation == "portrait") {
my_pj.addPage(0,{xMin:0,xMax:600,yMin:0,yMax:800});
}
else {
my_pj.addPage(0,{xMin:0,xMax:750,yMin:0,yMax:600});
}
on (release) {
var pageCount:Number = 0;
var my_pj:PrintJob = new PrintJob ();
if (my_pj.start ())
{
if (my_pj.addPage ("cartoon_mc", {xMin:0, xMax:363, yMin:0, yMax:250})) {
pageCount++;
}
}
if (pageCount > 0)
{
my_pj.send ();
}
delete my_pj;
}
if (my_pj.addPage (0))
{
pageCount++;
}
Der MC mit Instanznamen cartoon_mc beinhaltet mehrere Movieclips, die sich verschieben lassen. Will man mehrere Seiten unterschiedlichen Inhalts drucken, fügt man diese if-Struktur mehrmals hintereinander ein:
  Ist die Papierausrichtung Querformat ("landscape") wird "cartoon_mc" auf 200 % vergrößert. Hinterher wird die MC-Instanz wieder auf Originalgröße zurückgesetzt.
on (release) {
var pageCount:Number = 0;
var my_pj:PrintJob = new PrintJob ();
if (my_pj.start ())
{
if (my_pj.orientation == "portrait")
{
my_pj.addPage ("cartoon_mc", {xMin:0, xMax:363, yMin:0, yMax:250});
pageCount++;
} else
{
orgSize = cartoon_mc._xscale;
cartoon_mc._xscale = cartoon_mc._yscale = 200;
my_pj.addPage ("cartoon_mc", {xMin:0, xMax:363, yMin:0, yMax:250});
pageCount++;
cartoon_mc._xscale = cartoon_mc._yscale = orgSize;
}
}
if (pageCount > 0)
{
my_pj.send ();
}
delete my_pj;
}
  Ein Objekt, das auf dem Bildschirm 144 Pixel breit ist, wird mit einer Breite von 144 Punkt bzw. 2 Zoll gedruckt. Die Eigenschaft paperWidth gibt den druckbaren Bereich in Punkt zurück. Breite der Movieclipinstanz rainbow_mc wird auf die Breite des druckbaren Bereiches des Papiers gebracht. Damit auch die Höhe von rainbow_mc entsprechend umgerechnet werden kann, wird der Wert in Prozent mittels _xscale und _yscale zugewiesen. Nach dem
Drucken, wird die Größe wieder auf 100% gesetzt.
on (release) {
var pageCount:Number = 0;
var my_pj:PrintJob = new PrintJob ();
if (my_pj.start ())
{
breiteP = my_pj.paperWidth;
breiteM = rainbow_mc._width;
rainbow_mc._xscale = rainbow_mc._yscale = (100 / breiteM) * breiteP;
if (my_pj.addPage ("rainbow_mc"))
{
pageCount++;
}
rainbow_mc._xscale = rainbow_mc._yscale = 100;
}
if (pageCount > 0)
{
my_pj.send ();
}
delete my_pj;
}