Проблемы с печатью прозрачных png-файлов с помощью задания на печать (Flash AS)

Я пытаюсь напечатать видеоролик с заданием печати во флэш-памяти.

Этот фрагмент ролика содержит два слоя: один с изображением PNG с прозрачностью, а второй - с изображением в формате jpg.

Проблема в том, что прозрачность png не соблюдается, поэтому изображение jpg не появляется.

Код, который я использую, очень прост:

var my_pj:PrintJob = new PrintJob();

if (my_pj.start()) {
    my_pj.addPage("_parent.imprimir", {xMin:0, xMax:399, yMin:0, yMax:900}, false);
    my_pj.send();
}
delete my_pj;

Заранее спасибо.


person David Cremades    schedule 02.12.2010    source источник


Ответы (2)


У меня та же проблема, мне нужно иметь прозрачные png и векторы в моем PrintJob. Adobe рекомендует использовать:

var options:PrintJobOptions = new PrintJobOptions();
options.printAsBitmap = true;
myPrintJob.addPage(mySprite, null, options);

НО на Mac мы получаем пустую страницу для печати, ЕСЛИ у вас нет объекта на сцене. Спасибо Craig Grummitt's Before I Forget Blog posting за решение !! http://craiggrummitt.wordpress.com/2007/12/21/printasbitmap-object-must-be-on-stage

this.addChild(page);
//for macs only – otherwise they display the page while the print dialogue is open.
page.visible = false; 
var myOption:PrintJobOptions = new PrintJobOptions(true);
my_pj.addPage(page, null, myOption);
my_pj.send();
this.removeChild(page);

Я просто скрываю объект, который мне нужно напечатать, это решение мне отлично подходит. У меня есть символ в библиотеке, который я экспортирую. У меня есть прозрачные PNG с моими векторами.

Первый параметр addPage - это Sprite, поэтому я не мог понять, как заставить решение corneliu работать.

person kaplan    schedule 26.11.2011
comment
Чтобы использовать решение Корнелиу, просто создайте растровое изображение, добавьте его в спрайт и просто распечатайте этот спрайт. - person Pier; 08.07.2014

Сделайте снимок экрана своего мувиклипа:

var bmp:BitmapData = new BitmapData(_parent.imprimir.width, _parent.imprimir.height);
bmp.draw(_parent.imprimir);
var page:Bitmap = new Bitmap(bmp);

Этот метод рекомендуется для каждого задания на печать, потому что вы можете применять к растровому изображению всевозможные преобразования (масштабирование, поворот, сглаживание и т. Д.) Перед его отправкой на принтер.

person Corneliu Dascălu    schedule 03.12.2010
comment
разве потеряется качество векторов? - person alxx; 03.12.2010
comment
@alxx Что ты имеешь в виду? Он все равно собирается распечатать видеоклип, зачем ему векторы? Не говоря уже о том, что в вопросе он четко заявил, что у него есть png и jpg, а не векторы. - person Corneliu Dascălu; 03.12.2010
comment
Я просто заметил, что растеризация, вероятно, не лучший вариант для каждого задания на печать, хотя в данном случае это правильно. - person alxx; 03.12.2010