Pull to refresh

Печатаем Flash в Firefox правильно

Reading time1 min
Views1K
С давних времен у Flash-а и Firefox-а существует множество проблем.
Одна из них заключается в том, что Flash контент не печатается в Firefox.

Мы давным давно нашли workaround и выложили его фришной либой.
Прошло три года, а баг все еще существует и фикс все еще актуален.

Итак, представляю вам flash-print-fix. Небольшую библиотеку, которая позволяет добиться нормальной печати Flash содержимого в Firefox:
code.google.com/p/flash-print-fix

Проблема


Вот так печатается Flex приложение в Firefox без танцев с бубном:


А вот так при использовании flash-print-fix:


Как это работает


Принцип очень простой:
1. Получаем скриншот с swf-ки в png
2. Кодируем png в base64 string
3. Добавляем в страницу картинку с src=«data:img/png;base64,...»
4. Прописываем css-ом скрытие Flash при печати и отображение картинки:
@media screen
.flashScreenshot { display: none; }
@media print
.printableFlashObj { display: none; }; 
.flashScreenshot { display: block; border: 0; outline: none; }


Как использовать flash-print-fix


  • Качаем flash-print-fix: code.google.com/p/flash-print-fix
  • Добавляем swc к flex проекту
  • Правим html код и добавляем в него js:
    <script type="text/javascript" src="FlashPrintFix.js"></script>
    
  • Добавляем в flex проект инициализацию картинки, когда содержимое готово:
    FlashPrintFix.initializeApp();


Все! Про головную боль при печати можно забыть.

UPD:
Лицензия библиотеки изменена с LGPL на MIT
Tags:
Hubs:
Total votes 27: ↑24 and ↓3+21
Comments25

Articles