|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
[+4 15.11.07]
|
Печать HTML или PDF используя FlexPrintJob
Есть TextArea, в которое загружается HTML с помощью URLLoader. Нужно как-то это распечатать. Пробую с помощью FlexPrintJob и соответствующего хелпа, но печатается только одна страница причем со скроллбаром этого TextArea (см. вложение). В хелпе используется PrintDataGrid. Может можно в него как-то загрузить мой HTML?
private function loadBriefing() : void { var url : String = "sample.htm"; var urlLoader : URLLoader = new URLLoader(); var urlRequest : URLRequest = new URLRequest(url); urlLoader.addEventListener(Event.COMPLETE, onComplete,false,0,true); urlLoader.load(urlRequest); } private function onComplete(event:Event) : void { this.briefingText = new TextArea(); this.briefingText.htmlText = event.target.data; this.addChild(briefingText); this.briefingText.validateNow(); } public function print():void { var printJob : FlexPrintJob = new FlexPrintJob(); if (printJob.start()) { printJob.addObject(briefingText); printJob.send(); } } Кто что посоветует? На форуме решений не нашел. |
|
|||||
[+4 15.11.07]
|
Up-Up
|
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Плюс за ап.
|
|
|||||
[+4 15.11.07]
|
Вариант с текстфилдами по размеру страницы я уже рассматривал, он мне показался очень сложным, так как надо не простой текст разбивать, а HTML, да еще и так, что бы текст заполнял каждую страницу до конца, а не обрывался посередине...
Сегодня я придумал и реализовал другой интересный вариант, может кому-то пригодится еще: Перед печатью с помощью таймера увеличиваем высоту TextArea (сначала она равна 100%) до тех пор, пока не исчезнет вертикальная полоса прокрутки (при этом свойство TextArea.maxVerticalScrollPosition станет равным 0), и тогда запускаем печать. После печати устанавливаем высоту TextArea опять в 100%. При таком способе распечатывается весь текст на несколькихз страницах: public function print() : void { if (briefingText.maxVerticalScrollPosition == 0) { var printJob : FlexPrintJob = new FlexPrintJob(); if (printJob.start()) { printJob.addObject(briefingText); printJob.send(); } briefingText.percentHeight = 100; briefingText.verticalScrollPolicy = "auto"; } else { briefingText.verticalScrollPolicy = "off"; setTimeout(expandCanvas, 100); } } private function expandCanvas() : void { briefingText.height += 500; setTimeout(print, 100); } |
Часовой пояс GMT +4, время: 11:16. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|