PDF.js — открытая JavaScript-библиотека, разработанная для рендеринга PDF-документов непосредственно в веб-браузере без использования внешних плагинов. Проект возник как инициатива по реализации поддержки формата PDF средствами веб-технологий, с целью обеспечить отображение страниц, текстового слоя и графики с помощью HTML5, Canvas и сопутствующих веб-API. Библиотека распространяется с открытым исходным кодом и предназначена для интеграции в веб-приложения и браузерные расширения.
В основе PDF.js лежит парсер формата PDF и движок визуализации, который преобразует объекты PDF (страницы, шрифты, изображения, графические примитивы) в команды рисования на холсте браузера и в текстовые слои для поиска и выделения. Проект ориентирован на широкую совместимость с различными реализациями PDF, поддержку интерактивных элементов в рамках возможностей веб-платформы и на обеспечение контроля над отображением документов на стороне клиента. PDF.js используется как автономная библиотека и как компонент для встраивания просмотра PDF в веб-интерфейсы.
- Клиентская визуализация: рендеринг страниц PDF в Canvas с возможностью масштабирования, прокрутки и настройки качества вывода.
 - Текстовый слой: извлечение и наложение текста для поддержки поиска, выделения и копирования содержимого.
 - Поддержка шрифтов и графики: обработка встроенных и внешних шрифтов, растровых изображений и векторной графики, включая трансформации и прозрачность.
 - Постраничная и потоковая загрузка: загрузка и рендеринг отдельных страниц по мере необходимости для экономии ресурсов и ускорения просмотра больших документов.
 - API для разработчиков: программный интерфейс для загрузки документов, управления отображением, навигации по страницам и извлечения содержимого.
 - Совместимость с браузерами: адаптация к возможностям современных браузеров посредством использования стандартизованных веб-API.
 - Интеграция с UI: возможности встраивания панели управления, миниатюр и навигации, а также использования библиотек пользовательского интерфейса поверх движка рендеринга.
 - Обработка аннотаций: поддержка отображения аннотаций и ссылок в пределах ограничений веб-платформы.
 - Безопасность исполнения: работа в контексте браузера с ограничениями доступа к ресурсам пользователя и без необходимости установки дополнительных модулей.
 - Открытый исходный код: публикация исходников, что позволяет адаптировать и дорабатывать библиотеку под конкретные потребности.