Флэш-печать печатает только то, что видно на холсте - PullRequest
0 голосов
/ 18 июля 2011

Я создаю очень простой составитель отчетов для разрабатываемого приложения 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 Ответ

1 голос
/ 18 июля 2011

Вам необходимо добавить все объекты холста в PrintJob. Для этого используйте addObject

Было бы неплохо увидеть ваш код, если он не работает

...