Проблемы при печати SWF в браузере - PullRequest
0 голосов
/ 10 февраля 2010

Я пытаюсь распечатать SWF и столкнулся с некоторыми проблемами. При использовании функции «Печать» в браузере SWF-файл будет искажен и неправильно масштабирован. Поэтому я попытался реализовать функцию Print, используя вместо этого Actionscript.

Я использовал следующие подходы:

  • Печать с использованием контекстного меню Flash Player правой кнопкой мыши и выбора «Печать». Это работает почти так, как ожидалось, но выравнивает прозрачные PNG и не масштабируется правильно.
  • Создание FlexPrintJob и добавление компонента в задание. Компонент не будет масштабироваться по размеру страницы, даже если для задания печати я установил FlexPrintJobScaleType.SHOW_ALL.
  • Создание PrintView, содержащего изображение. Затем сделайте снимок экрана компонента и установите его в качестве изображения в PrintView. Когда это будет сделано, я создаю новый FlexPrintJob и отправляю его. Кажется, это работает в большинстве случаев, но масштабирование искажает и делает маленькие элементы (например, текст) выглядят очень плохо.

Код для печати выглядит так:

var pj:FlexPrintJob = new FlexPrintJob();
if (pj.start())
{
 pj.addObject(componentToBePrinted, FlexPrintJobScaleType.SHOW_ALL);
    pj.send(); 
}

То, что я хотел бы сделать, - это заставить контекстное меню правой кнопки мыши работать, и под этим я подразумеваю настройку масштабирования SWF. Это возможно? Есть ли другие варианты при печати SWF? Что я делаю не так?

При тестировании я печатаю в PDF, но не думаю, что это изменит результаты.

1 Ответ

0 голосов
/ 10 февраля 2010

Вам нужно масштабировать задание на печать для того, что вы хотите в FlexPrintJobScaleType:

MATCH_WIDTH

(по умолчанию) Масштабирует объект для заполнения доступная ширина страницы. Если полученная высота объекта превышает высота страницы, выходной охват несколько стр.

MATCH_HEIGHT

Масштабирует объект, чтобы заполнить доступная высота страницы. Если результирующая ширина объекта превышает ширина страницы, выходной охват несколько страниц.

SHOW_ALL

Масштабирование объекта для размещения на одном страница, заполняющая одно измерение; то есть, он выбирает меньшее из Шкала MATCH_WIDTH или MATCH_HEIGHT типы.

FILL_PAGE

Масштабирует объект, чтобы заполнить хотя бы один страница полностью; то есть выбирает большее из MATCH_WIDTH или Типы шкалы MATCH_HEIGHT.

НЕТ

Не масштабирует вывод. Печатный страница имеет те же размеры, что и объект на экране. Если объект высота, ширина или оба размера превышать ширину или высоту страницы, вывод охватывает несколько страниц.

См. http://livedocs.adobe.com/flex/3/html/help.html?content=printing_3.html для получения дополнительной информации об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...