Мы принимаем к оплате:

«Подарочный сертификат» от нашего Учебного Центра – это лучший подарок для тех, кто Вам дорог! Оплате обучение и подарите Вашим родным и близким обучение по любому из курсов!!!

«Сертификат на повторное обучение» дает возможность повторно пройти обучение в нашем Учебном Центре со скидкой 1000 рублей!

А также:


Как из html сделать pdf


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

Ежедневно в процессе деятельности регистратора REG.RU, в котором я работаю программистом, совершаются сотни операций, требующих оформления каких-либо официальных документов. Среди них — различные договоры, счета, сертификаты и т.п., которые необходимо печатать как компании, так и клиентам. Для таких целей хорошо подходит формат PDF, который на сегодняшний день стал де-факто основным для обмена и распространения документации. Основными преимуществами этого формата можно назвать: кроссплатформенность, аппаратную независимость и безопасность. Все вышеперечисленное позволило PDF завоевать популярность среди пользователей и стать одним из самых распространенных.

Как можно создавать документы в формате PDF на лету, из скрипта? Для таких целей существуют различные инструменты. Одним из них является язык разметки LaTeX, позволяющий автоматизировать многие задачи по подготовке статей, включая набор текста на нескольких языках, нумерацию разделов и формул, перекрёстные ссылки, размещение иллюстраций и многие другие. Но у LaTeX есть одна очень серьезная проблема: у него очень крутая кривая обучения. Чтобы выучить его, требуется затратить много времени. И в LaTeX'е очень неудобно работать с таблицами. Потратив много времени на поиск наилучшего решения, я пришел к выводу, что проще всего конвертировать готовую HTML страницу в PDF и передать клиенту. Я сделал обзор программ, которые можно использовать для такой конвертации.

Требования к конвертерам
Основное внимание уделялось таким особенностям конвертеров как:
  • Простота настройки шрифтов
  • Вставка разрыва страницы
  • Безразличие к X серверу
  • Поддержка CSS
Желательно, чтобы шрифты и кодировку можно было легко настроить. В идеале, конвертер должен сам распознавать используемую кодировку и шрифт. Чтобы нужные данные помещались на одной странице, а не расползались на две, пользователи делают разрыв на странице. Хотелось бы иметь возможность создавать разрывы простым способом — через CSS свойство. Конвертер должен быть независим от X Windows, поскольку работает на Web-сервере, который и без X Windows'a сильно загружен. Конечно же, можно использовать Xvfb, но это не подходящее решение. Для теста были сделаны две простые HTML-странички, прошедшие валидацию. Первая страница содержит разрыв, сделанный CSS свойством, вторая — содержит сложную таблицу с объединениями ячеек. Так странички отображаются в браузере:

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

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

webkit2pdf. Аналог wkhtmltopdf. Ему нужен запущенный X-сервер. С результатами его работы можно ознакомиться чуть выше.

pisa(xhtml2pdf). Конвертер написан на python, а, значит, независим от Х-сервера. Умеет делать разрывы, шрифты настраиваются в отдельном CSS файле, путь к которому передается через параметр. Однако, очень привередливый: в случае малейших ошибок или недочетов в HTML коде падает.

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

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

html2pdf. Прост в обращении, шрифты берет из системы, умеет делать разрывы страниц. Для конвертации использует какую-то старую версию браузера Firefox. Но ему нужен запущенный X-сервер. Помимо этого, может заглючить и отказаться работать. Платный.

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

Кроме подвала на второй странице, все блоки и картинки на месте.

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

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

Не понимает CSS.

html2ps, ps2pdf. По характеристикам похож на htmldoc.

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

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

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

Все съехало, проблемы с позиционированием.
Результаты в виде таблицы
Наименование Способ настройки шрифтов Поддержка разрывов страниц Независимость от X-сервера Поддержка CSS Бесплатный
wkhtmltopdf Использует системные + + + +
webkit2pdf Использует системные + - + +
html2pdf Использует системные + - + -
htmldoc Задаются через параметры - + - +
pisa(xhtml2pdf) Нужно указывать пути к шрифтам в CSS файле + + + +
Связка html2ps, ps2pdf ? - + - +
prince Использует системные + + + -
Выводы
Как оказалось, с задачами конвертации лучше справились бесплатные конвертеры. Если нужно конвертировать страничку с большим объемом графики, фреймов и javascript, то лучше использовать конвертеры, основанные на webkit. Если же страничка с минимальным количеством HTML-элементов, то со своей задачей хорошо справится htmldoc.
Примечание
Обзор по PHP конвертерам можно почитать тут. А тут можно почитать обзор по online конвертерам.

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

Теги:

html - Преобразование HTML + CSS в PDF с помощью PHP? - Qaru

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

HTML2PDF выглядел наиболее перспективным, но у меня была такая странная ошибка в отношении нулевых ссылочных аргументов node_type. Наконец я нашел решение. В принципе, PHP 5.1.x отлично справился с заменой регулярных выражений (preg_replace_ *) на строки любого размера. В PHP 5.2.1 была указана директива конфигурации php.ini под названием pcre.backtrack_limit. Этот параметр конфигурации ограничивает длину строки, для которой выполняется сопоставление. Почему это было введено, я не знаю. Значение по умолчанию было выбрано как 100 000. Почему такая низкая стоимость? Опять же, не знаю.

A ошибка против PHP 5.2.1 для этого, которая по-прежнему открыта почти два года спустя.

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

Итак, у меня есть 70-килобайтный HTML файл, который превращается в PDF. Для этого требуются следующие настройки php.ini:

  • pcre.backtrack_limit = 2000000; # вероятно, больше, чем мне нужно, но что ОК
  • memory_limit = 1024M; # да, один гигабайт; и
  • max_execution_time = 600; # да, 10 минут.

Теперь проницательный читатель, возможно, заметил, что мой HTML файл меньше 100k. Единственная причина, по которой я могу догадаться, почему я столкнулся с этой проблемой, заключается в том, что html2pdf делает преобразование в xhtml как часть процесса. Возможно, это меня перевело (хотя почти 50% раздувание кажется странным). Как бы то ни было, вышеописанное работало.

Теперь html2pdf - ресурс hog. Мой файл 70k занимает около 5 минут и не менее 500-600M ОЗУ для создания 35-страничного PDF файла. Не достаточно быстро (к сожалению) для загрузки в режиме реального времени, к сожалению, и использование памяти ставит коэффициент использования памяти в размере порядка 1000 к 1 (600 МБ ОЗУ для файла 70 тыс.), Что совершенно нелепо.

К сожалению, это лучшее, что я придумал.

Конвертируем веб-страницы в PDF

Иногда требуется сохранить какую-нибудь страницу в PDF. Например, чтобы прочесть затем на электронной читалке или нетбуке. Для того, чтобы просто сохранить информацию и прочитать ее в офлайне. В данном случае Google и Яндекс, как правило, советуют скачать специальный софт. Но ведь не все программы кросплатформенные, да и покидать браузер не всегда хочется. Поэтому, Лайфхакер сделал для вас небольшую подборку сервисов, которые конвертируют веб-страницы в PDF прямо в браузере.

HTML to PDF converter Минималистичный и красивый сервис по конвертации веб-страниц в PDF. Он даже поддерживает русский язык. Просто введите нужный адрес в единственную на сранице строку и начинайте конвертирование. Через некоторое время сервис выдаст ссылку на .pdf-файл.

Web2pdf convert В отличие от предыдущего, этот сервис русского языка не знает. Но он ему и не нужен. Здесь нет ровным счетом ничего сложного — адрес в строку и скачиваем .pdf-файл. Кстати, Web2pdf convert сделал свою работу гораздо быстрее, чем HTML to PDF converter.

PDF on Fly Этот сервис называется «PDF на лету» и это название подобрано очень правильно. Данный конвертер не так красив и удобен как предыдущие. На нем больше рекламы, чем на других. Для конвертации нужно ввести проверочный код. Это все минусы. Но есть один весомый плюс — конвертер работает очень и очень быстро. Ему нужно около секунды, чтобы сделать свою работу. Правда, он не дает ссылку на сохранение .pdf-файла, а просто предлагает открыть его прямо в браузере.

Htm 2 pdf

Преимущество этого сервиса перед остальными в том, что кроме веб-страниц он конвертирует и html-код. Для этого нужно выбрать опцию «convert RAW html» и вставить в форму исходный код какой-либо странички. Конвертер работает достаточно медленно по сравнению с предыдущими, но возможность конвертирования исходного кода страниц оправдывает его существование.

PDF my URL Простой и быстрый конвертер. Когда вы предлагаете ему ссылку, он, не раздумывая, сразу предлагает вам сохранить документ. Кого-то такая прыть может отпугнуть, а кому-то наоборот понравится. Еще с помощью этого сервиса можно сделать виджет сохранения страницы в PDF для своего сайта или блога.


Смотрите также



Компьютерные курсы по направлениям:

Для начинающих


A

Компьютер для начинающих: Word, Excel, Access и другие программы!

Графические пакеты


B

Популярные пакеты Adobe Photoshop, CorelDraw, ArchiCAD, AutoCAD и другие!

WEB + анимация


C

Курсы по созданию сайтов, WEB-дизайну и крутой анимации в Adobe Flash!

Бухгалтерия + делопроизводство

Сетевые технологии


E

Курсы сборки ПК, системных администраторов и защиты информации!