Книги

PDF

Рендеринг PDF

При просмотре PDF в браузере или мобильном приложении используется рендеринг PDF на стороне сервера и отображение отрендеренных страниц в браузере и мобильных устройствах Сам процесс рендеринга осуществляют внешние подключаемые программы (библиотеки).

Библиотеки PDF-рендеринга

Библиотеки рендеринга не идеальны и могут возникать проблемы совместимости библиотек с определенными файлами PDF. В таком случае можно попытаться изменить библиотеку рендеринга на другую. Поменять библиотеку можно как для всех книг сразу (заменив программу рендеринга по-умолчанию), так и для каждой книги в отдельности.

Устранение ошибок некорректного рендеринга

При возникновении проблем с рендерингом книги, попробуйте для данной книги установить другой PDF-рендерер и сохраните книгу.

Векторный и растровый рендеринг

ELiS поддерживает два режима рендеринга: векторный и растровый. При растровом режиме страница рендерится целиком на сервере и преобразуется в растровый формат (рисунок). При векторном рендеринге текст и другие векторные составляющие преобразуются в векторный формат, понятный браузеру и уже в браузере (на стороне пользователя) рендерятся в растровое изображение.

Векторный рендеринг

При векторном страница PDF преобразуется в SVG c преобразованием всех шрифтов в кривые Безье. Табличные рамки также остаются кривыми (как и в PDF). Встроенные в PDF растровые изображения (картинки) остаются растровыми.

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

Минусы векторного рендеринга заключаются в том, что он потребляет больше трафика (так как размер страницы в векторном формате обычно больше растровой) и значительно нагружает процессор пользователя, что критично для мобильных процессоров и устаревших ПК, а также в низкоскоростных каналах.

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

Растровый рендеринг

При растровом рендеринге программы полностью на сервере рендерят PDF-страницу в виде рисунка с разрешением 300 DPI (точек на дюйм), что соответствует печатному качеству.

Растровое изображение значительно меньше нагружает процессор пользователя (браузера), поэтому предпочтительнее для мобильных устройств использовать растровый рендеринг.

При показе отрендеренных страниц в виде картинок в браузере использовать картинки с высоким разрешением нежелательно из-за высокого объема трафика и высокой вычислительной нагрузки на мобильные устройства.

Ресайзинг страниц под экран пользователя

Решается данная проблема путем ресайзинга (изменения размеров) отрендеренных страниц до размеров программы просмотра книги (браузера или приложения ELiS). Ресайзинг тоже занимает ощутимое количество ресурсов сервера и осуществляется с помощью программ ImageMagick или GraphicsMagick. Выбор любой из программ остается на усмотрение администратора (программа включается глобально на весь сайт). При этом следует иметь в виду следующее:

  1. GraphicsMagick работает быстрее в 1,5 - 2 раза.
  2. Текстовые (не сканированные) PDF ImageMagick сжимает лучше в 1-3 раза.

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

Оптимизации отображения PDF

Размер отрендеренных PDF-страниц имеет большое значение на скорость доставки страницы в устройство пользователя и ее отображение. Размер существенно зависит от типа PDF-файла (текстовый или оцифрованный) и от выходного формата. Формат JPEG хорошо подходит для оцифрованных PDF, но имеет существенно больший размер для текстовых PDF в сравнении с PNG. ELiS автоматически выбирает подходящий формат (PNG для текстовых PDF и JPEG для оцифрованных) для уменьшения трафика при просмотре страниц. Кроме этого, браузеры с поддержкой WebP могут быть автоматически переключены на получение страниц в WebP, что снижает размер страниц еще на 20-25%, но увеличивает время генерации примерно на 500 мс.

После получения отресайзенной страницы велика вероятность загрузки следующих страниц в аналогичном разрешении. ELiS автоматически запустить упреждающий ресайзинг, что позволяет подготовить страницы нужных размеров до запроса со стороны браузера.

Автоматический выбор оптимального режима рендеринга

Приведенные оптимизации не требуют какой-либо настройки со стороны администратора или библиотекаря.

ELiS автоматически выберит векторный режим для достаточно быстрых процессоров или растровый для мобильных процессоров или в низкоскоростных сетях.

Оптимальный формат (PNG,JPEG,WebP) также выбирается автоматически.

EPUB

В ELiS имеется ограниченная поддержка EPUB.

Файлы EPUB могут прикрепляться к файлам PDF.

Ограничения поддержки EPUB

Файлы EPUB не попадают в результаты поиска, на них не накладывается DRM-защита и они не могут быть скачаны в приложениях ELiS. Также при отображении на мобильных устройствах возможны различные несовместимости. В ELiS не поддерживается навигация по EPUB на базе стандарта EPUBCFI.

Доступный функционал

Файлы EPUB могут быть отображены на сайте и в каталоге OPDS.

Текстовые EPUB

При загрузке EPUB пользователю предлагается выбрать является ли EPUB текстовым или интерактивным.

Текстовый EPUB - это стандартный EPUB с текстом, изображением и другим мультимедийным содержимым (в том чилсе с видео). Для текстового EPUB активирутеся плеер в виде книги, который разберет EPUB с целью выявления содержания и отобразит в специализированном плеере в одну или две колонки.

У плеера текстового EPUB можно задать размер шрифта.

Текстовый EPUB может различным образом обрабатываться плеером и плеер может изменять отображение содержимого текстового EPUB. Большинство сторонних программ чтения EPUB также разработаны под текстовый EPUB и существенно преобразуют его для более комфортного чтения в зависимости от своих настроек.

Интерактивный EPUB

Для упаковки некоторого типа интерактивного контента может быть нежелательным, чтобы программа чтения EPUB производила его преобразование в соответствии с пользовательскими настройками, а также нежелательным создание собственной системы навигации.

Например, в EPUB может быть упакована интерактивная игра или учебник и использование его в режиме текстового EPUB может привести в неработоспособность навигацию, исказить верстку и т.п.

Для документов EPUB требующих невмешательство программы чтения в отображения интерактивного содержимого в ELiS предусмотрен режим интерактивного EPUB.

При этом режиме ELiS не использует и не формирует навигацию, а в качестве стартовой страницы, с которой запускается EPUB, используется страница index.xhtml или index.html в файле EPUB. Если в интерактивном EPUB таких страниц нет, EPUB необходимо распаковать как ZIP-архив, добавить нужную страницу-перенаправление и упаковать обратно в ZIP-архив, переименовав затем в EPUB и заново загрузить (обновив) в ELiS.

Дополнительную информацию читайте в блоге: http://elibsystem.ru/node/154

Интерактивный EPUB как микрохостинг статических сайтов

В связи с тем, что в интерактивном режиме спецификация EPUB реально может не использоваться, а документ EPUB начитаент отображаться со страницы index.html или index.xhtml, функционал интерактивного EPUB можно использовать в целях хостинга статических сайтов.

Для этого заархивируйте статический сайт в ZIP-архив и загрузите его в качестве интерактивного EPUB. Сайт откроется в плеере с первой найденной страницы index.html или index.xhtml в папке или любой из подпапок ZIP-архива.

Безопасность при работе с EPUB

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