Flash CS3-Dokumentation |
|||
| Programmieren mit ActionScript 3.0 > Drucken > Festlegen von Seitengröße, Skalierung und Ausrichtung | |||
Im Abschnitt Drucken von Seiten werden ausführlich die Schritte für einen einfachen Druckauftrag beschrieben, bei dem die Druckausgabe genau der Bildschirmgröße und -position des angegebenen Sprite-Objekts entspricht. Bei verschiedenen Druckern kommen jedoch unterschiedliche Druckauflösungen zum Einsatz. Zudem können Druckeinstellungen festgelegt sein, die sich nachteilig auf die Darstellung des gedruckten Sprite-Objekts auswirken.
In Flash Player können die Druckeinstellungen des Betriebssystems gelesen werden. Es handelt sich dabei jedoch um schreibgeschützte Eigenschaften: Sie können diese Werte zwar anzeigen, jedoch nicht ändern. Sie können beispielsweise die Einstellung des Druckers für die Seitengröße ermitteln und den Inhalt dann so anpassen, dass er dieser Größe entspricht. Sie können auch die Einstellungen für die Seitenränder und die Seitenausrichtung eines Druckers ermitteln. Um den Inhalt entsprechend den Druckereinstellungen anzupassen, müssen Sie möglicherweise einen Druckbereich festlegen, die Unterschiede zwischen der Bildschirmauflösung und den Punktmaßen des Druckers abgleichen oder den Inhalt so ändern, dass er den Einstellungen für die Seitengröße und die Ausrichtung des Druckers entspricht.
Mit der PrintJob.addPage()-Methode können Sie den Druckbereich für ein Sprite-Objekt festlegen. Der zweite Parameter printArea hat die Struktur eines Rectangle-Objekts. Sie haben drei Möglichkeiten, den Wert für diesen Parameter anzugeben:
addPage()-Aufruf verwenden, wie im folgenden Beispiel dargestellt:private var rect1:Rectangle = new Rectangle(0, 0, 400, 200); myPrintJob.addPage(sheet, rect1);
myPrintJob.addPage(sheet, new Rectangle(0, 0, 100, 100));
addPage()-Aufruf angeben, jedoch kein Rectangle-Objekt festlegen möchten, können Sie für den zweiten Parameter null angeben:myPrintJob.addPage(sheet, null, options);
|
HINWEIS |
|
Wenn Sie ein Rectangle-Objekt für die Druckabmessungen angeben möchten, müssen Sie die |
Breite und Höhe eines Rechtecks werden in Pixel angegeben. Bei Druckern wird die Druckmaßeinheit Punkt verwendet. Punkt ist eine feste Größe (1/72 Zoll), die Größe eines Pixels richtet sich jedoch nach der jeweiligen Auflösung des Bildschirms. Der Umrechnungsfaktor zwischen Pixel und Punkt hängt daher von den Druckereinstellungen und davon ab, ob das Sprite skaliert ist. Ein nicht skaliertes Sprite mit einer Breite von 72 Pixel wird mit einer Breite von 1 Zoll gedruckt. Dabei entspricht ein Punkt einem Pixel, unabhängig von der Bildschirmauflösung.
Zoll- oder Zentimeterangaben können folgendermaßen in Twip oder Punkt umgerechnet werden (ein Twip ist 1/20 Punkt):
Wenn Sie den Parameter printArea weglassen oder falsch übergeben, wird der gesamte Sprite-Bereich gedruckt.
Wenn Sie ein Sprite-Objekt vor dem Drucken skalieren möchten, legen Sie die Skalierungseigenschaften (siehe Ändern der Größe und Skalieren von Objekten) vor dem Aufrufen der PrintJob.addPage()-Methode fest, und setzen Sie sie nach dem Drucken wieder auf die ursprünglichen Werte zurück. Die Skalierung eines Sprite-Objekts hat keinen Bezug zur printArea-Eigenschaft. Wenn Sie beispielsweise einen Druckbereich mit der Größe 50 x 50 Pixel festlegen, werden 2500 Pixel gedruckt. Wenn Sie das Sprite-Objekt skalieren, werden dieselben 2500 Pixel in der skalierten Größe gedruckt.
Ein Beispiel hierzu finden Sie unter Beispiel: Skalieren, Zuschneiden und Anpassen.
Da es in Flash Player möglich ist, die Einstellungen für die Druckausrichtung zu ermitteln, können Sie ActionScript-Code programmieren, mit dem die Größe oder Drehung des Inhalts entsprechend den Druckereinstellungen angepasst werden, wie im folgenden Beispiel dargestellt:
if (myPrintJob.orientation == PrintJobOrientation.LANDSCAPE)
{
mySprite.rotation = 90;
}
|
HINWEIS |
|
Wenn Sie die Systemeinstellung für die Ausrichtung des Inhalts auf dem Papier ermitteln möchten, denken Sie daran, die PrintJobOrientation-Klasse wie folgt zu importieren: import flash.printing.PrintJobOrientation;
Die PrintJobOrientation-Klasse enthält Konstanten, mit denen die Ausrichtung des Inhalts auf der Seite definiert wird. |
Ähnlich wie bei den Druckereinstellungen für die Druckausrichtung können Sie die Einstellungen für die Seitenhöhe und die Seitenbreite ermitteln und entsprechend anpassen, indem Sie Code in eine if-Anweisung einbetten. Der folgende Code ist ein Beispiel hierfür:
if (mySprite.height > myPrintJob.pageHeight)
{
mySprite.scaleY = .75;
}
Zusätzlich können die Einstellungen für die Seitenränder durch einen Vergleich der Seiten- und Papierabmessungen ermittelt werden, wie im folgenden Beispiel dargestellt:
margin_height = (myPrintJob.paperHeight - myPrintJob.pageHeight) / 2; margin_width = (myPrintJob.paperWidth - myPrintJob.pageWidth) / 2;
Flash CS3
Eine E-Mail an mich senden, wenn dieser Seite Kommentare hinzugefügt werden | Kommentarbericht
Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/main/00000334.html