Рендеринг PDF при помощи HTML5 и JavaScript

Рендеринг PDF при помощи HTML5 и JavaScript

Андреасу Гаулу (Andreas Gal) вместе с коллегами из компании Mozilla удалось разработать первый достаточно работоспособный движок pdf.js, который позволит отображать PDF средствами HTML5/javascript.

Разработчики считают, что рендеринг PDF внутри браузера предоставит гораздо больше удобств для пользователей, поскольку в таком случае отпадает необходимость в установке каких-либо внешних программ, предназначенных для просмотра PDF. Тем более, что многие из них не поддерживают полностью важные спецификации PDF, а также вынуждают пользователей осваивать непривычный для них интерфейс.

Нельзя сказать, что внедрение в Интернет-браузер open-source или нативных плагинов является идеальным решением, поскольку это создает потенциальную брешь в безопасности.

Не смотря на то, что работа над созданием pdf.js длится уже более месяца, разработчики только сейчас решили предать гласности свои намерения. Сперва они собирались закончить основные фичи (градиенты, шрифты Type1 и другие), чтобы движок был хоть сколь-нибудь работоспособным.

Однако неожиданный огромный интерес Интернет-сообщества к этому проекту вынудил разработчиков раскрыть все карты раньше срока.

В планах участников разработки доведение df.js до идеального (попиксельно неотличимого) рендеринга на текстовом документе, в качестве которого был взят научный доклад, описывающий javascript-компилятор TraceMonkey.

Этот документ уже отображен в демо-ролике проекта. Несмотря на наличие множества глюков, а также артефактов рендеринга, в целом можно понять, о чем именно идет речь. А сейчас дорабатывается поддержка шрифтов Type1 PostScript, поэтому вскоре демонстрационный документ будет лучше восприниматься на вид.

После этого разработчики собираются приступить к реализации других опций PDF через canvas и выяснить, каким образом при помощи javascript можно реализовать самые сложные спецификации PDF, которые не имеют прямого соответствия в HTML Canvas.

Авторы проекта полагают, что довести pdf.js до уровня, при котором он сможет отображать большинство находящихся в Сети PDF-документов, им удастся в течение трех месяцев.

В недалеком будущем pdf.js станет нативной частью обозревателя Firefox, а перед этим он будет выпущен в качестве расширения.

Разработчики надеются, что их примеру последуют и другие Интернет-обозреватели, внедрив у себя поддержку pdf.js.

Кстати код движка опубликован под свободной лицензией (модифицированная BSD).