Pull to refresh

Flash bitmap printing bug

Reading time1 min
Views1.2K
В новогодние праздники пришло нам волшебное письмо от наших клиентов. Товарищи используют AnyGantt, и у них начались очень специфические проблемы.

Проблемы заключались в печати диаграмм Ганта.
Долгий и упорный поиск проблемы привел к тому, что мы нашли баг в Flash Player-е, который существует там аж с августа 2010 года.

bugs.adobe.com: https://bugs.adobe.com/jira/browse/FP-6167

Для начала несколько примеров:
Вот так вот выглядит Gantt chart в браузере:




А вот во что этот график превращает попытка печати:


Еще один пример. На этот раз с Flex-ом. Из help-а Adobe:
http://livedocs.adobe.com/flex/3/html/help.html?content=printing_5.html

Вот так все выглядит в оригинале:


А вот в это всю эту красоту превращает Flash Player при печати:


Конкретный пример


Копание и упорный дебаг привели к изоляции бага и, собственно, простейшему его reproduce-у.

В простейшем виде все сводится вот к этим двум картинкам:
Оригинал:

А вот он же после печати:


Исходник примера:
http://anychart.com/batsuev/habrahabr/printing/srcview/index.html

В чем причина


А причина очень простая.
Если в дереве визуальных объектов у текста есть parent со scrollRect — жди беды при печати в bitmap.
Вот такие пирожки на несколько тысяч долларов.

Версии Flash Player-а


Баг проявляется предположительно в Adobe Flash Player начиная с версии 10.1.82.76 (август 2010)
В текущей версии (10.2) от так же присутствует.
Tags:
Hubs:
+17
Comments22

Articles