Flash Printing仅打印画布上可见的内容

时间:2011-07-18 07:08:08

标签: flash flex actionscript-3 printing air

我正在为我正在开发的AIR应用程序构建一个非常基本的报表编写器。我正在使用Flash PrintJob类输出我的报告的内容(其中的页面作为Canvas对象存储在ViewStack对象中)。问题是,只有我在报告预览屏幕中看到的内容才会被打印出来。有没有办法可以打印Canvas对象包含的内容而不仅仅是可见内容?

非常感谢你的帮助。

以下是我正在使用的代码段:

        protected function doPrintReport(event:Event):void
        {
            var pj:PrintJob = new PrintJob();
            var pjo:PrintJobOptions = new PrintJobOptions();

            CursorManager.setBusyCursor();

            if(pj.start() == true) {

                if(vsOutput.orientation == "landscape") {
                    pj.orientation = PrintJobOrientation.LANDSCAPE;
                                    }
                else {
                    pj.orientation = PrintJobOrientation.PORTRAIT;
                }
                for(var i:int = 0; i < vsOutput.length; i++) {
                    var pc:Canvas = new Canvas();
                    pc = vsOutput.getChildAt(i) as Canvas;
                    pj.addPage(pc, null, pjo);
                }
            }
            else {
                CursorManager.removeBusyCursor();
                MsgBox.error("Failed to initiate printing", "Printing Error");
                return;
            }

            try{
                pj.send();
            }
            catch(e:Error)
            {
                CursorManager.removeBusyCursor();
                MsgBox.error(e.toString(), "Printing Error");
                return;
            }

            CursorManager.removeBusyCursor();
            MsgBox.info("Print request sent successfully", "Print Request");
        }

1 个答案:

答案 0 :(得分:1)

您需要将所有画布对象添加到PrintJob。使用addObject表示

如果代码不起作用,那将很高兴看到你的代码