Из Html В Pdf – Легко! Обзор Конвертера

Ежедневно во время работы регистратора РЕГ.

РУ , где я работаю программистом, выполняются сотни операций, требующих оформления любых официальных документов.

Среди них различные договоры, счета-фактуры, сертификаты и т. д., которые необходимо распечатать как компании, так и клиентам.

Для таких целей хорошо подходит формат PDF, который сегодня стал де-факто основным форматом обмена и распространения документации.

К основным преимуществам этого формата относятся: кроссплатформенность, аппаратная независимость и безопасность.

Все вышеперечисленное позволило PDF завоевать популярность среди пользователей и стать одним из самых распространенных.

Как я могу создавать PDF-документы «на лету» из сценария? Для таких целей существуют различные инструменты.

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

Но у LaTeX есть одна очень серьезная проблема: ему очень сложно учиться.

Чтобы этому научиться, нужно много времени.

А в LaTeX очень неудобно работать с таблицами.

Потратив немало времени на поиски лучшего решения, я пришел к выводу, что проще всего конвертировать готовую HTML-страницу в PDF и отправить ее клиенту.

Я рассмотрел программы, которые можно использовать для такого преобразования.



Требования к преобразователям
Основное внимание было уделено таким возможностям конвертера, как:
  • Простая настройка шрифта
  • Вставка разрыва страницы
  • Безразличие к X-серверу
  • Поддержка CSS
Желательно, чтобы шрифты и кодировку можно было легко настроить.

В идеале конвертер должен сам распознавать используемую кодировку и шрифт. Чтобы необходимые данные умещались на одной странице, а не разносились по двум, пользователи создают на странице разрыв.

Я хотел бы иметь возможность создавать разрывы простым способом - через свойство CSS. Конвертер должен быть независим от X Windows, поскольку он работает на веб-сервере, который сильно загружен даже без X Windows. Конечно, вы можете использовать Xvfb , но это не подходящее решение.

Для теста были сделаны две простые HTML-страницы, прошедшие валидацию.

Первая страница содержит разрыв, созданный свойством CSS, вторая содержит сложную таблицу с соединениями ячеек.

Вот как страницы отображаются в браузере:

Из html в pdf – легко! Обзор конвертера



Из html в pdf – легко! Обзор конвертера



Обзор
wkhtmltopdf .

Наверное, самый популярный конвертер сегодня и, как оказалось, не зря.

Его основа — движок webkit: он берет шрифты из системы, умеет создавать разрывы страниц, а для работы нужны файлы библиотеки с X-сервера.

Пример работы:

Из html в pdf – легко! Обзор конвертера



Из html в pdf – легко! Обзор конвертера



Из html в pdf – легко! Обзор конвертера

Как видно из примера, wkhtmltopdf справился со своей задачей хорошо.

Все блоки на месте, картинки есть, разрыв страницы есть.

вебкит2pdf .

Аналогично wkhtmltopdf. Для этого нужен работающий X-сервер.

С результатами его работы можно ознакомиться чуть выше.

Пиза(xhtml2pdf) .

Конвертер написан на Python, что означает независимость от X-сервера.

Это может создавать перерывы; шрифты настраиваются в отдельном CSS-файле, путь к которому передается через параметр.

Однако он очень капризен: при малейших ошибках или упущениях в HTML-коде он аварийно завершает работу.

Пример работы:

Из html в pdf – легко! Обзор конвертера



Из html в pdf – легко! Обзор конвертера

Очень плохо: шрифт определил правильно, но с разметкой не справился.

html2pdf .

Прост в использовании, берет шрифты из системы, умеет создавать разрывы страниц.

Для конвертации используется какая-нибудь старая версия браузера Firefox. Но ему нужен работающий X-сервер.

Кроме того, он может выйти из строя и отказаться работать.

Оплаченный.

Пример работы:

Из html в pdf – легко! Обзор конвертера



Из html в pdf – легко! Обзор конвертера



Из html в pdf – легко! Обзор конвертера

За исключением футера на второй странице, все блоки и картинки на месте.

htmlдокумент .

Простой конвертер без наворотов.

Пример работы:

Из html в pdf – легко! Обзор конвертера



Из html в pdf – легко! Обзор конвертера

Не понимает CSS. html2ps, ps2pdf .

Его характеристики аналогичны htmldoc. Пример работы:

Из html в pdf – легко! Обзор конвертера



Из html в pdf – легко! Обзор конвертера

принц .

Платный конвертер стоит недешево.

Использует системные шрифты, может создавать разрывы, безразличен к X-серверу.

Пример работы:

Из html в pdf – легко! Обзор конвертера



Из html в pdf – легко! Обзор конвертера



Из html в pdf – легко! Обзор конвертера

Все съехало, проблемы с позиционированием.



Результаты в виде таблицы
Имя Способ установки шрифтов Поддержка разрыва страницы Независимый от X-сервера Поддержка CSS Бесплатно
wkhtmltopdf Использует систему + + + +
вебкит2pdf Использует систему + - + +
html2pdf Использует систему + - + -
htmlдокумент Установить через параметры - + - +
Пиза(xhtml2pdf) Вам необходимо указать пути к шрифтам в файле CSS. + + + +
Ссылка html2ps, ps2pdf ? - + - +
принц Использует систему + + + -


выводы
Как оказалось, бесплатные конвертеры лучше справлялись с задачами конвертации.

Если вам нужно конвертировать страницу с большим количеством графики, фреймов и javascript, то лучше использовать конвертеры на базе webkit. Если на странице минимальное количество HTML-элементов, то htmldoc хорошо справится с этой задачей.



Примечание
Вы можете прочитать обзор PHP-конвертеров здесь .

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

UPD: Отключите блокировщик рекламы, если картинки не видны.

Теги: #Программное обеспечение #HTML #pdf #конвертер

Вместе с данным постом часто просматривают: