Flex - Hỗ trợ in
Flex cung cấp một lớp học đặc biệt FlexPrintJob để in các đối tượng flex.
FlexPrintJob có thể được sử dụng để in một hoặc nhiều đối tượng Flex, chẳng hạn như hộp chứa Biểu mẫu hoặc VBox.
FlexPrintJob in đối tượng và tất cả các đối tượng mà nó chứa.
Các đối tượng có thể là tất cả hoặc một phần của giao diện được hiển thị.
Các đối tượng có thể là các thành phần định dạng dữ liệu đặc biệt để in.
Lớp FlexPrintJob cho phép bạn mở rộng đầu ra để vừa với trang.
Lớp FlexPrintJob tự động sử dụng nhiều trang để in một đối tượng không vừa trên một trang.
Lớp FlexPrintJob khiến hệ điều hành hiển thị hộp thoại In. Bạn không thể in nếu không có một số thao tác của người dùng.
Chuẩn bị và gửi lệnh in
Bạn in đầu ra bằng cách chuẩn bị và gửi lệnh in. Hãy tạo một phiên bản của lớp FlexPrintJob
var printJob:FlexPrintJob = new FlexPrintJob();
Bắt đầu công việc in
printJob.start();
Flex sẽ làm cho hệ điều hành hiển thị hộp thoại In. Thêm một hoặc nhiều đối tượng vào lệnh in và chỉ định cách chia tỷ lệ chúng
printJob.addObject(myObject, FlexPrintJobScaleType.MATCH_WIDTH);
Mỗi đối tượng bắt đầu trên một trang mới. Gửi lệnh in đến máy in
printJob.send();
Ví dụ về in ấn
Bươc | Sự miêu tả |
---|---|
1 | Tạo một dự án với tên HelloWorld trong một gói com.tutorialspoint.client như được giải thích trong chương Flex - Create Application . |
2 | Sửa đổi HelloWorld.mxml như được giải thích bên dưới. Giữ phần còn lại của các tệp không thay đổi. |
3 | Biên dịch và chạy ứng dụng để đảm bảo logic nghiệp vụ đang hoạt động theo yêu cầu. |
Sau đây là nội dung của tệp mxml đã sửa đổi 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>
Khi bạn đã sẵn sàng với tất cả các thay đổi được thực hiện, hãy để chúng tôi biên dịch và chạy ứng dụng ở chế độ bình thường như chúng tôi đã làm trong chương Flex - Create Application . Nếu mọi thứ đều ổn với ứng dụng của bạn, ứng dụng sẽ cho kết quả sau: [ Dùng thử trực tuyến ]
Nhấp vào nút in tôi và bạn có thể thấy bản in của lưới dữ liệu được hiển thị bên dưới.