Одной из самых важных функций современного браузера является поддержка отображения различных форматов файлов. Браузер Google Chrome стал одним из первых веб-обозревателей, который стал поддерживать вывод содержимого файлов в формате PDF без помощи сторонних приложений. Программисты Mozilla Foundation также стати разрабатывать технологию поддержки отображения PDF в браузере Mozilla Firefox. Один из проектов подобного рода получил название PDF.js. В рамках проекта предпринимается поддержка PDF-файлов в браузере с использованием технологий, описанных в стандарте HTML 5 и кода JavaScript. Для включения поддержки PDF в Mozilla Firefox необходимо установить одноименное расширение.
Из уже реализованной в расширении функциональности можно отметить:
Разработчики поясняют, что код поддержки формата PDF в браузере Mozilla Firefox создается на одном из высокоуровневых языков, что позволяет свести к минимуму проблемы информационной безопасности, которыми так славятся приложения для работы с данным форматом.
Расширение PDF.js преобразует файл в представление в формате JavaScript, а затем браузер выполняет полученный JavaScrpt-кода как стандартный. Созданная на основе информации из файла PDF JavaScript-страница представляет собой контент, выводимый через HTML-тэг «canvas». Следует отметить, что создаваемый расширением JavaScript-код разделяется по категориям «простого» и «сложного».
К «простому» коду разработчики относят операции вывода текста и рисовки кривых. К «сложному» - операции типа «заполнение определенной области с затенением по конкретной маске». По словам разработчиков, ситуация с переводом PDF-файла в JavaScript-код может осложняться тем, что некоторые виды программного обеспечения для создания файлов PDF, кодируют и/или сжимают внедряемые изображения и шрифты.
В настоящее время разработчики сообщают о наличии проблем при формировании изображения попиксельно. Точнее говоря, проблемы возникают при выделении текста при сформированном таким образом изображении и при выводе страницы документа на печать. Есть проблемы и при использовании технологии «canvas», которая пока не в состоянии обеспечить полноценный рендеринг документов в формате PDF. В дальнейшем, разработчики планируют начать использование SVG при рендеринге PDF, однако для этого необходимы значительные системные ресурсы. Возможно, что в будущем будет использоваться промежуточный вариант, в котором будет использоваться как технология «canvas» (для первоначального отображения), так и SVG (для создания полноценного высококачественного изображения в фоновом режиме).
Разработчики отмечают, что в будущем планируется внедрение поддержи более качественного попиксельного отображения PDF-документов, в соответствии со спецификацией стандарта PDF 1.7. Кроме того, в дальнейшем разработчики планируют портировать расширение и на другие браузеры. Экспериментальные варианты портированных расширений для других браузеров уже существуют, однако их стабильная работа не гарантируется.
Также планируется переработать архитектуру расширения, чтобы включить в него поддержку технологии WebWorkers, позволяющей расспараллеливать задачи на несколько процессоров. Затем разработчики планируют сосредоточиться на повышении отзывчивости интерфейса pdf.js и создать привязки для встраивания его в веб-приложения.
Конечной целью является создание кода, который будет встроен в браузер Mozilla Firefox в качестве базовой функциональности, как это произошло, к примеру, с расширением Mozilla Weave, которое стало частью браузера под названием Firefox Sync.