В новогодние праздники пришло нам волшебное письмо от наших клиентов. Товарищи используют 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.
Вот такие пирожки на несколько тысяч долларов.
Баг проявляется предположительно в Adobe Flash Player начиная с версии 10.1.82.76 (август 2010)
В текущей версии (10.2) от так же присутствует.
Проблемы заключались в печати диаграмм Ганта.
Долгий и упорный поиск проблемы привел к тому, что мы нашли баг в 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) от так же присутствует.