Я пытаюсь распечатать 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, но не думаю, что это изменит результаты.