Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.11.2007, 21:51
makanmel вне форума Посмотреть профиль Отправить личное сообщение для makanmel Найти все сообщения от makanmel
  № 1  
Ответить с цитированием
makanmel
[+4 15.11.07]
 
Аватар для makanmel

Регистрация: Dec 2006
Адрес: Lviv
Сообщений: 34
Отправить сообщение для makanmel с помощью ICQ Отправить сообщение для makanmel с помощью Skype™
По умолчанию Печать 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();
 }
}
Еще лучше было бы иметь возможность распечатывать PDF, доступный по URL. Я конечно могу его открыть в новом окне, но там еще нужно будет открывать диалог печати... А нужно что бы он сразу появился, или даже сразу пошла печать.

Кто что посоветует? На форуме решений не нашел.
Изображения
 

Старый 15.11.2007, 21:47
makanmel вне форума Посмотреть профиль Отправить личное сообщение для makanmel Найти все сообщения от makanmel
  № 2  
Ответить с цитированием
makanmel
[+4 15.11.07]
 
Аватар для makanmel

Регистрация: Dec 2006
Адрес: Lviv
Сообщений: 34
Отправить сообщение для makanmel с помощью ICQ Отправить сообщение для makanmel с помощью Skype™
Up-Up

Старый 15.11.2007, 23:14
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Плюс за ап.

Старый 16.11.2007, 16:18
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 4  
Ответить с цитированием
__i
 
Аватар для __i

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
Бей ручками текст на страницы пихай в отдельные текстфиелды. Другого варианта нету.
__________________
33 коровы

Старый 16.11.2007, 21:45
makanmel вне форума Посмотреть профиль Отправить личное сообщение для makanmel Найти все сообщения от makanmel
  № 5  
Ответить с цитированием
makanmel
[+4 15.11.07]
 
Аватар для makanmel

Регистрация: Dec 2006
Адрес: Lviv
Сообщений: 34
Отправить сообщение для makanmel с помощью ICQ Отправить сообщение для makanmel с помощью Skype™
Вариант с текстфилдами по размеру страницы я уже рассматривал, он мне показался очень сложным, так как надо не простой текст разбивать, а 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.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 11:16.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.