Flex - Druckunterstützung
Flex bietet eine spezielle Klasse FlexPrintJob Flex-Objekte drucken.
FlexPrintJob kann zum Drucken eines oder mehrerer Flex-Objekte verwendet werden, z. B. eines Formular- oder VBox-Containers.
FlexPrintJob druckt das Objekt und alle darin enthaltenen Objekte.
Die Objekte können ganz oder teilweise die angezeigte Oberfläche sein.
Die Objekte können Komponenten sein, die Daten speziell für den Druck formatieren.
Mit der FlexPrintJob-Klasse können Sie die Ausgabe an die Seite anpassen.
Die FlexPrintJob-Klasse verwendet automatisch mehrere Seiten, um ein Objekt zu drucken, das nicht auf eine einzelne Seite passt.
Die FlexPrintJob-Klasse bewirkt, dass das Betriebssystem ein Dialogfeld Drucken anzeigt. Sie können nicht ohne Benutzeraktion drucken.
Bereiten Sie einen Druckauftrag vor und senden Sie ihn
Sie drucken die Ausgabe, indem Sie einen Druckauftrag vorbereiten und senden. Erstellen wir eine Instanz der FlexPrintJob-Klasse
var printJob:FlexPrintJob = new FlexPrintJob();
Starten Sie den Druckauftrag
printJob.start();
Flex bewirkt, dass das Betriebssystem ein Dialogfeld Drucken anzeigt. Fügen Sie dem Druckauftrag ein oder mehrere Objekte hinzu und geben Sie an, wie diese skaliert werden sollen
printJob.addObject(myObject, FlexPrintJobScaleType.MATCH_WIDTH);
Jedes Objekt beginnt auf einer neuen Seite. Senden Sie den Druckauftrag an den Drucker
printJob.send();
Druckbeispiel
Schritt | Beschreibung |
---|---|
1 | Erstellen Sie ein Projekt mit dem Namen HelloWorld unter einem Paket com.tutorialspoint.client, wie im Kapitel Flex - Anwendung erstellen erläutert . |
2 | Ändern Sie HelloWorld.mxml wie unten erläutert. Halten Sie den Rest der Dateien unverändert. |
3 | Kompilieren Sie die Anwendung und führen Sie sie aus, um sicherzustellen, dass die Geschäftslogik den Anforderungen entspricht. |
Es folgt der Inhalt der geänderten mxml-Datei src/com.tutorialspoint/HelloWorld.mxml.
<?xml version = "1.0" encoding = "utf-8"?>
<s:Application xmlns:fx = "http://ns.adobe.com/mxml/2009"
xmlns:s = "library://ns.adobe.com/flex/spark"
xmlns:mx = "library://ns.adobe.com/flex/mx"
width = "100%" height = "100%"
minWidth = "500" minHeight = "500"
initialize = "application_initializeHandler(event)">
<fx:Style source = "/com/tutorialspoint/client/Style.css" />
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.FlexEvent;
import mx.printing.FlexPrintJob;
import mx.printing.FlexPrintJobScaleType;
protected function btnClickMe_clickHandler(event:MouseEvent):void {
// Create an instance of the FlexPrintJob class.
var printJob:FlexPrintJob = new FlexPrintJob();
// Start the print job.
if (printJob.start() != true) return;
// Add the object to print. Do not scale it.
printJob.addObject(myDataGrid, FlexPrintJobScaleType.NONE);
// Send the job to the printer.
printJob.send();
}
protected function application_initializeHandler(event:FlexEvent):void {
lblHeader.text = "My Hello World Application";
}
]]>
</fx:Script>
<s:BorderContainer width = "500" height = "500" id = "mainContainer"
styleName = "container">
<s:VGroup width = "100%" height = "100%" gap = "50"
horizontalAlign = "center"
verticalAlign = "middle">
<s:Label id = "lblHeader" fontSize = "40" color = "0x777777"
styleName = "heading" />
<mx:DataGrid id = "myDataGrid" width = "300">
<mx:dataProvider>
<fx:Object Product = "Flex" Code = "1000" />
<fx:Object Product = "GWT" Code = "2000" />
<fx:Object Product = "JAVA" Code = "3000" />
<fx:Object Product = "JUnit" Code = "4000" />
</mx:dataProvider>
</mx:DataGrid>
<s:Button label = "Print Me!" id = "btnClickMe"
click = "btnClickMe_clickHandler(event)"
styleName = "button" />
</s:VGroup>
</s:BorderContainer>
</s:Application>
Wenn Sie mit allen vorgenommenen Änderungen fertig sind, lassen Sie uns die Anwendung im normalen Modus kompilieren und ausführen, wie wir es im Kapitel Flex - Anwendung erstellen getan haben . Wenn mit Ihrer Anwendung alles in Ordnung ist, führt dies zu folgendem Ergebnis: [ Online testen ]
Klicken Sie auf die Schaltfläche "Drucken", um den Ausdruck des unten gezeigten Datenrasters anzuzeigen.