В ActionScript 3.0 за работу с принтером отвечает класс PrintJob. PrintJob позволяет распечатать содержимое любого экземпляра класса Sprite (PrintJob распечатывает именно спрайт, но внутри спрайта могут находиться и текстовые поля, и растровые изображения, и другие визуальные объекты).
Код ActionScript 3.0:
/*
импорт классов
*/
import flash.printing.PrintJob;
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldType;
import flash.geom.Rectangle;
import flash.events.MouseEvent;
/*
спрайт, содержимое которого будем выводить на печать
*/
var sprite:Sprite = new Sprite();
addChild(sprite);
/*
динамическое текстовое поле, помещённое внутрь спрайта
*/
var txtField:TextField = new TextField();
txtField.type = TextFieldType.INPUT;
txtField.width = 450;
txtField.height = 200;
txtField.x = 50;
txtField.y = 50;
txtField.border = true;
txtField.borderColor = 0x999999;
txtField.text = "Ваш текст";
sprite.addChild(txtField);
/*
кнопка PRINT
*/
btn.addEventListener(MouseEvent.CLICK, printSprite);
function printSprite(event:MouseEvent):void
{
/*
создаём объект класса PrintJob
*/
var printJob:PrintJob = new PrintJob();
/*
начинаем процесс печати
*/
printJob.start();
/*
добавляем спрайт на печать
*/
printJob.addPage(sprite, new Rectangle(0, 0, 550, 400));
/*
отправляем принтеру на печать
*/
printJob.send();
}
Обратите внимание на второй параметр у метода addPage(). С помощью этого параметра мы можем указать прямоугольную область спрайта, которую хотим распечатать. В данном случае на принтер выводится прямоугольная область шириной 550 px, высотой 400 px и с координатами верхнего левого угла (0,0).
Результат:
Вводим свой текст в текстовое поле (например, "Привет, мир!") и жмём кнопку «PRINT». Появляется системное окно с настройками печати (повлиять на настройки принтера из flash-приложения нельзя, хотя у класса PrintJob имеется возможность считывать некоторые из настроек печати, а это даёт возможность соответствующим образом подготовить к печати сам спрайт):
Жмём «OK» и получаем примерно следующее:
Пример, конечно, довольно примитивный, но для большинства случаев этого вполне достаточно.
Скачать исходники можно тут - скачать исходники (под Adobe Flash CS 5.5).