PrintJob仅打印背景颜色

时间:2010-09-14 13:41:43

标签: flash actionscript-3 printing

希望有人可以看到我错过的东西或其他东西,因为这真的很奇怪! 基本上我已经创建了一个打印类,其中包含所有打印作业代码以打印精灵,但是当我打印它时,我创建的精灵就像一个遮罩,精灵图形的区域应该是我的背景颜色。

例如,我的100x100黑色精灵在预览中看起来像这样: http://www.willdonohoe.com/examples/print_job_fail.png

当我将图像缩放到打印宽度和高度的宽度和高度时,显然我的页面都是紫色的。

无论如何,这是我的代码:

public function print():void {

 //bitmap_to_print.smoothing = true;

 var print_page:Sprite = new Sprite();
 var sp:Sprite = new Sprite();
 sp.graphics.beginFill(0x000000, 1);
 sp.graphics.drawRect(0, 0, 100, 100);
 sp.graphics.endFill();
 print_page.addChild(sp);

 var print_job:PrintJob = new PrintJob();
 addChild(print_page);

 if (print_job.start()) {

   trace(">> pj.orientation: " + print_job.orientation);
   trace(">> pj.pageWidth: " + print_job.pageWidth);
          trace(">> pj.pageHeight: " + print_job.pageHeight);
          trace(">> pj.paperWidth: " + print_job.paperWidth);
          trace(">> pj.paperHeight: " + print_job.paperHeight);

   print_page.height = print_job.pageHeight;
   print_page.scaleX = print_page.scaleY;

   print_job.addPage(print_page);
   print_job.send();

   print_job = null;

 } else {

  //User does not have printer or user cancelled print action
 }
 removeChild(print_page);
}

如果有人有任何想法,或者之前遇到过这个问题,那么任何帮助都会受到很大的关注。很多,谢谢,

1 个答案:

答案 0 :(得分:0)

我刚注意到这个帖子没有回答,我忘了说我找到了修复。出于某种原因,我需要将我想直接打印的对象添加到舞台上,例如stage.addChild(movieclip),奇怪的是,如果我将它添加到舞台上的一个孩子中它似乎不起作用,它必须是直接在舞台上添加。

好消息是,如果你不想在打印时显示movieclip / bitmap / sprite,如果你将visiblity设置为false,它仍然会为你打印。

有点奇怪,但似乎有效。

干杯, 将