Ежедневно во время работы регистратора РЕГ.
РУ , где я работаю программистом, выполняются сотни операций, требующих оформления любых официальных документов.
Среди них различные договоры, счета-фактуры, сертификаты и т. д., которые необходимо распечатать как компании, так и клиентам.
Для таких целей хорошо подходит формат PDF, который сегодня стал де-факто основным форматом обмена и распространения документации.
К основным преимуществам этого формата относятся: кроссплатформенность, аппаратная независимость и безопасность.
Все вышеперечисленное позволило PDF завоевать популярность среди пользователей и стать одним из самых распространенных.
Как я могу создавать PDF-документы «на лету» из сценария? Для таких целей существуют различные инструменты.
Одним из них является язык разметки LaTeX, позволяющий автоматизировать многие задачи при подготовке статей, в том числе набор текста на нескольких языках, нумерацию разделов и формул, перекрестные ссылки, размещение иллюстраций и многие другие.
Но у LaTeX есть одна очень серьезная проблема: ему очень сложно учиться.
Чтобы этому научиться, нужно много времени.
А в LaTeX очень неудобно работать с таблицами.
Потратив немало времени на поиски лучшего решения, я пришел к выводу, что проще всего конвертировать готовую HTML-страницу в PDF и отправить ее клиенту.
Я рассмотрел программы, которые можно использовать для такого преобразования.
Требования к преобразователям
Основное внимание было уделено таким возможностям конвертера, как:- Простая настройка шрифта
- Вставка разрыва страницы
- Безразличие к X-серверу
- Поддержка CSS
В идеале конвертер должен сам распознавать используемую кодировку и шрифт. Чтобы необходимые данные умещались на одной странице, а не разносились по двум, пользователи создают на странице разрыв.
Я хотел бы иметь возможность создавать разрывы простым способом - через свойство CSS. Конвертер должен быть независим от X Windows, поскольку он работает на веб-сервере, который сильно загружен даже без X Windows. Конечно, вы можете использовать Xvfb , но это не подходящее решение.
Для теста были сделаны две простые HTML-страницы, прошедшие валидацию.
Первая страница содержит разрыв, созданный свойством CSS, вторая содержит сложную таблицу с соединениями ячеек.
Вот как страницы отображаются в браузере:
Обзор
wkhtmltopdf .Наверное, самый популярный конвертер сегодня и, как оказалось, не зря.
Его основа — движок webkit: он берет шрифты из системы, умеет создавать разрывы страниц, а для работы нужны файлы библиотеки с X-сервера.
Пример работы:
Как видно из примера, wkhtmltopdf справился со своей задачей хорошо.
Все блоки на месте, картинки есть, разрыв страницы есть.
Аналогично wkhtmltopdf. Для этого нужен работающий X-сервер.
С результатами его работы можно ознакомиться чуть выше.
Конвертер написан на Python, что означает независимость от X-сервера.
Это может создавать перерывы; шрифты настраиваются в отдельном CSS-файле, путь к которому передается через параметр.
Однако он очень капризен: при малейших ошибках или упущениях в HTML-коде он аварийно завершает работу.
Пример работы:
Очень плохо: шрифт определил правильно, но с разметкой не справился.
html2pdf .
Прост в использовании, берет шрифты из системы, умеет создавать разрывы страниц.
Для конвертации используется какая-нибудь старая версия браузера Firefox. Но ему нужен работающий X-сервер.
Кроме того, он может выйти из строя и отказаться работать.
Оплаченный.
Пример работы:
За исключением футера на второй странице, все блоки и картинки на месте.
Простой конвертер без наворотов.
Пример работы:
Не понимает CSS. html2ps, ps2pdf .
Его характеристики аналогичны htmldoc.
Пример работы:
принц .
Платный конвертер стоит недешево.
Использует системные шрифты, может создавать разрывы, безразличен к X-серверу.
Пример работы:
Все съехало, проблемы с позиционированием.
Результаты в виде таблицы
Имя | Способ установки шрифтов | Поддержка разрыва страницы | Независимый от X-сервера | Поддержка CSS | Бесплатно |
wkhtmltopdf | Использует систему | + | + | + | + |
вебкит2pdf | Использует систему | + | - | + | + |
html2pdf | Использует систему | + | - | + | - |
htmlдокумент | Установить через параметры | - | + | - | + |
Пиза(xhtml2pdf) | Вам необходимо указать пути к шрифтам в файле CSS. | + | + | + | + |
Ссылка html2ps, ps2pdf | ? | - | + | - | + |
принц | Использует систему | + | + | + | - |
выводы
Как оказалось, бесплатные конвертеры лучше справлялись с задачами конвертации.Если вам нужно конвертировать страницу с большим количеством графики, фреймов и javascript, то лучше использовать конвертеры на базе webkit. Если на странице минимальное количество HTML-элементов, то htmldoc хорошо справится с этой задачей.
Примечание
Вы можете прочитать обзор PHP-конвертеров здесь .А здесь Вы можете прочитать обзор онлайн-конвертеров.
UPD: Отключите блокировщик рекламы, если картинки не видны.
Теги: #Программное обеспечение #HTML #pdf #конвертер
-
5 Причин Медленного Подключения К Интернету
19 Oct, 24 -
3 Года Слепого Программирования. Часть 1
19 Oct, 24 -
Программист И Антивирус Ii – Конец Истории
19 Oct, 24 -
Изгибающий Резистор Своими Руками
19 Oct, 24 -
Springsource Запускает Cloudfoundry
19 Oct, 24 -
Как Мы Провели Детский День В Veeam
19 Oct, 24 -
Яндекс.директ Теперь Горизонтальный!
19 Oct, 24