Как перевести хтмл в пдф

Конвертируем HTML в PDF при помощи Dompdf

Как перевести хтмл в пдф
PDF — формат, ставший уже стандартом. Он был изначально создан Adobe для представления текста и изображений в документе с фиксированной структурой. Давно не редкость для веб-приложений, поддерживающих скачку данных, таких как счета или отчеты, отдавать их в PDF формате. Так что в этой статье мы пройдем простую генерацию PDF документов используя PHP.

Dompdf — это отличная библиотека, способная генерировать PDF из HTML-разметки и CSS-стилей (в большинстве случаев это стили, совместимые с CSS 2.1 с поддержкой некоторых свойств CSS3). Мы можем определить, как наше содержимое должно выглядеть, используя эти знакомые технологии, и после легко конвертировать его в фиксированный документ. Также эта библиотека имеет и другие полезные и интересные функции.

Приступаем к работе

Dompdf доступен на GitHub и может быть установлен используя Composer. Установка через Composer без каких-либо ошибок часто вызывает трудности, поэтому я рекомендую просто использовать Git для установки Dompdf.

Библиотека требует PHP >= 5.0 с активированными расширениями mbstring и DOM. Также она требует несколько шрифтов, которые обычно доступны на большинстве компьютеров.

Перейдите в директорию, куда собираетесь установить библиотеку и выполните в командной строке:

Как только мы скачали Dompdf, давайте напишем короткий пример, который сгенерирует простой PDF документ:

Для того, чтобы использовать библиотеку в проекте, мы сначала подтягиваем файл dompdf_config.inc.php, который содержит большую часть конфигурации Dompdf. Он также загружает autoloader и пользовательский файл конфигурации в котором мы можем переопределить параметры по умолчанию.

HTML-разметка передается как строка в метод load_html(). Альтернативно мы можем загрузить разметку из файла или URL, используя метод load_html_file(). Он принимает имя файла или URL веб-страницы в качестве аргумента.

Метод render() отображает HTML в PDF, и мы готовы к отдаче файла. Метод stream() отправляет результирующий PDF как вложение в браузер. Этот метод имеет необязательный второй параметр, массив опций:

Только что мы сгенерировали очень простой PDF, но это не совсем практично. В реальности мы часто имеем требования к размеру листа, ориентации страницы, кодировке символов и т.д. Есть целый набор опций, которые мы можем установить, чтобы сделать Dompdf более подходящим для наших реальных потребностей. Все они перечислены и объяснены в файле dompdf_config.inc.php, который устанавливает им значения по умолчанию. Вы можете менять эти значения, обновляя файл пользовательской конфигурации dompdf_config.custom.inc.php. Вот некоторые из важных настроек:

Продвинутое использование

Теперь давайте немного поговорим о продвинутом использовании Dompdf. Возможно мы хотим сохранить сгенерированный PDF документ на диск, вместо того чтобы отсылать его в браузер. Вот как это делается:

Вместо вызова stream(), как в прошлом примере, мы используем output(), который возвращает PDF как строку. Этот метод также принимает массив опций, но доступна лишь одна — compress (по умолчанию true).

Dompdf также позволяет нам добавлять хедер и футер к сгенерированному PDF, встраивая PHP-скрипт прямо в HTML, который он отображает. Но из-за того, что обработка произвольного кода может представлять из себя угрозу безопасности, значение конфигурации, которое отвечает за эту функциональность, по умолчанию выключено. Нам необходимо для начала установить опцию DOMPDF_ENABLE_PHP как true.

Как только мы включили выполнение встроенного PHP, объект PDF станет доступным внутри скрипта и мы сможем использовать его для манипуляций со страницей. Мы можем добавлять текст, линии, изображения, прямоугольники и т.д.

Скрипт встроен прямо в HTML-разметку и сначала открывает объект, чтобы мы могли влиять на отображение. Вся отрисовка будет записана в этот объект и мы сможем добавить его на все выделенные страницы (хотя есть и ограничения).

Затем мы получаем реальную ширину и высоту страницы, чтобы посчитать координаты футера, который мы собираемся добавить. Также нам требуется предоставить обьект шрифта, поскольку мы добавляем текстовое содержимое. Font_Metrics::get_font() позволяет создать объект, который нам необходим. Мы также берем высоту данного шрифта из его размера используя get_font_height(), чтобы посчитать позиционирование содержимого футера. Метод get_font_width() возвращает ширину нашего текста для данного шрифта и размера, которую мы также используем в наших вычислениях.

Метод line() рисует линию из точки (X1,Y1) в точку (X2,Y2). Обратите внимание, значение цвета подставляется не совсем в RGB. Основной PDF-класс требует значения между 0 и 1, так что мы конвертируем значения RGB в эти новые значения. Чтобы получить лучшее приближение (approximation), вы можете поделить их на 255.

Мы добавляем номер для каждой страницы, используя метод page_text(), которой принимает координаты X и Y, а также текст, который будет добавлен, объект шрифта, размер шрифта и цвет. Dompdf автоматически заменяет значения для и на каждой странице, и делает $pdf доступным для нас.

Также мы можем не использовать встроенный PHP и достигать аналогичного эффекта прямо из PHP, примерно так:

Обратите внимание, мы размещаем код после вызова $dompdf->render() потому что мы, по существу, редактируем уже созданный PDF.

Подведем итоги

В этой статье мы обсудили простой способ конвертировать HTML в PDF используя Dompdf. Несмотря на то, что Dompdf отличная библиотека, она не является полностью универсальным решением для генерации PDF документов; она все же имеет определенные ограничения и проблемы. Dompdf не очень терпимо относится к плохо оформленному HTML и большие таблицы могут легко привести к переполнению памяти. Некоторые базовые функции CSS, такие как float не полностью поддерживаются. И вообще, поддержка CSS3 очень ограничена. Если вам необходимы функции, которые не поддерживаются в Dompdf, вам может помочь к примеру wkhtmltopdf. Тем не менее, Dompdf является очень простым и удобным инструментом для решения большинства задач по экспорту PDF.

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

Источник

Как конвертировать HTML в PDF с помощью принтера PDF

Как перевести хтмл в пдф

Что необходимо для конвертации HTML файла в PDF файл или как можно создать PDF версию Вашего HTML файла

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

Таким образом, Вы можете создать PDF версию любого файла, который можно распечатать. Просто откройте файл с помощью ридера, нажмите кнопку печати, выберите виртуальный PDF принтер и нажмите кнопку «Печать». Если у Вас есть устройство для чтения файла HTML и если ридер может распечатать файл, то Вы можете преобразовать файл в формат PDF.

Как перевести хтмл в пдф

Альтернативный способ того, как преобразовать HTML файл в PDF файл

PDF24 предоставляет несколько онлайн инструментов, которые могут быть использованы для создания PDF файлов. Поддерживаемые типы файлов добавляются по мере поступления и, возможно, формат файла HTML также уже поддерживается. Служба конвертации имеет различные интерфейсы. Два из них являются следующими:

Онлайн PDF Конвертер от PDF24 поддерживает множество файлов, которые могут быть преобразованы в PDF. Просто выберите файл HTML, из которого Вы хотели бы получить PDF версию, нажмите кнопку «конвертировать», и Вы получите PDF версию файла.

Как перевести хтмл в пдф

Существует также E-Mail PDF Конвертер от PDF24, который также может быть использован для преобразования файлов в формат PDF. Просто отправьте по электронной почте сообщение в службу E-Mail PDF Конвертера, прикрепите HTML файл к этому письму, и через несколько секунд Вы получите PDF файл обратно.

Источник

Как перевести хтмл в пдфВсем доброго времени!

Несмотря на то, что в каждом браузере можно быстро создавать закладки на понравившиеся страницы, тем не менее, порой очень необходимо сохранить нужную веб-страничку в PDF (хотя бы потому, что эта страница со временем с сайта может быть удалена или отредактирована 👌).

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

Да и сама страница, со временем не разъедется, не изменится ее форматирование и оформление. В общем, полезная и нужная вещь!

В этой статье рассмотрю несколько способов, как это можно быстро и легко сделать. Собственно, приступим к делу.

Незаменимые программы для чтения PDF-файлов — см. мою подборку

Как перевести хтмл в пдф

3 способа сохранения веб-страницы в DPF

👉 С помощью печати в браузере

Будем считать, что вы нашли очень интересный и нужный материал, который непременно необходимо сохранить к себе. Рассмотрю действия по порядку.

1) Какой бы не был у вас браузер (Chrome, Opera, Edge, Firefox и др.), нажмите сочетание кнопок Ctrl+P (это сочетание означает распечатку страницы). Также эта функция доступна в меню браузеров.

Как перевести хтмл в пдф

Нашли веб-страницу, которую нужно сохранить

См. пару скриншотов ниже. 👇

Как перевести хтмл в пдф

Изменяем принтер на сохранение в PDF

Как перевести хтмл в пдф

Microsoft Print to PDF

Как перевести хтмл в пдф

Задаем основные настройки

4) Далее укажите место на диске, где вы хотите сохранить файл, задайте ему имя.

Как перевести хтмл в пдф

Задаем расположение и имя файла

Собственно, на этом задача выполнена. Теперь полученный PDF можно открыть в Word, Adobe PDF Reader, и сотнях других программ, поддерживающих данный формат.

Как перевести хтмл в пдф

Задача выполнена, файл сохранен

👉 С помощью спец. расширений

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

Небольшое дополнение для Firefox, Opera, Chrome, позволяющие в 1 клик мышкой сохранить веб-страницу полностью на жесткий диск!

Отмечу, что после нажатия по значку PDF Mage — текущая страничка просто скачивается в формате PDF к вам в папку загрузки. Удобнее придумать просто нельзя.

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

Как перевести хтмл в пдф

Так выглядит значок PDF Mage на панели в Chrome

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

Как перевести хтмл в пдф

Начало сохранение веб-странички

Буквально через мгновение, браузер сам автоматически начнет загружать файл в формате PDF. Собственно, делается все без лишних телодвижений, быстро и удобно!

Как перевести хтмл в пдф

Загрузка странички в формате PDF

В общем, рекомендую к использованию!

👉 С помощью онлайн сервисов

В сети также есть множество интернет-сервисов, позволяющих быстро сохранить любые странички в сети в PDF. Суть работы примерно следующая: вы вставляете в спец. строку URL-адрес странички, которую вам нужно сохранить.

Далее жмете кнопку генерации PDF файла. Через некоторое время получаете ссылку на загрузку своего PDF.

Пользоваться, конечно, можно, но на мой скромный взгляд — всё это утомительно и годится для временного использования. Например, у вас есть «проблемы» с браузером или Windows, попалась какая-то «странная» страница, которая не хочет сохраняться предыдущими способами.

И так, самые популярные из сервисов подобного рода:

На этом у меня пока всё.

Источник

Как HTML перевести в PDF файл

Сегодня мы поговорим о том, как страницу HTML перевести в PDF файл. Есть простое решение, которое позволяет в один клик конвертировать HTML в PDF с сохранением файла в Вашем компьютере.

Если при работе в интернете с документами возникает необходимость загрузить к себе в компьютер целую страницу HTML, то просмотрев данный урок, Вы сможете страницу HTML загрузить в свой компьютер в файле PDF быстро и качественно.

Как перевести хтмл в пдф

Установите программу Adop Acrobat XI или Adop Acrobat Pro.

Данные программы необходимы каждому, кто работает, используя интернет. Комфортная работа с PDF файлами – это Ваша экономия времени.

Вариант первый

Рассмотрим первый вариант создания PDF файла из страницы HTML.

Открываем нужную страницу в интернете. Для наглядного примера для Вас используем главную страницу нашего сайта wpuroki.ru

Как перевести хтмл в пдф

Открываем в своем компьютере Adop Acrobat Pro. В левом верхнем углу в задачах жмем кнопку “Создать” и выбираем “PDF из веб-страницы”.

Как перевести хтмл в пдф

Открывается окно “Создать PDF файл из Web-страницы”, в котором нам нужно указать URL адрес страницы, которую будем преобразовывать в PDF файл. Нажимаем кнопку “Создать”

Как перевести хтмл в пдф

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

По окончании загрузки и конвертации открывается PDF файл, сохраненный в папке в компьютере.

Как перевести хтмл в пдф

Первый вариант мы с Вами разобрали и сделали.

Вариант второй.

Начинаем работать второй вариант создания PDF файла из страницы HTML.

Вы заметили, что при начале работы с Adop Acrobat Pro, Вам было предложено загрузить в браузер разрешение “Adop Acrobat – создать файл”.

Это разрешение устанавливается в браузере.

Можно преобразовать страницу HTML следующим образом.

Открываем в браузере наши расширения.

Как перевести хтмл в пдф

Выбираем “Adop Acrobat – создать файл”, нажимаем, открывается окно для выбора задачи.

Как перевести хтмл в пдф

Нажимаем, показываем по запросу путь сохранения PDF файла в компьютере и наблюдаем.

Как перевести хтмл в пдф

Получаем итог. Страница в браузере преобразована в PDF файл, он после загрузки открылся.

Как перевести хтмл в пдф

Adop Acrobat Pro в режиме чтения показывает внизу страницы навигацию.

Как перевести хтмл в пдф

Мы получили файл PDF из интернет-страницы HTML.

Подведем итог

Подведем итог данных уроков.

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

2. Мы научились открывать PDF файл в браузере без постороннего конвертера.

3. Мы теперь умеем при необходимости конвертировать HTML страницу в PDF файл с сохранением файла в компьютере.

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

Сегодня Вы получили не просто уроки, Вы получили возможность улучшить поведенческие факторы своего сайта.

Если Вы ещё не являетесь студентом нашего Тренинг-Центра, но желаете им стать, Вам необходимо зарегистрироваться на бесплатный онлайн тренинг.

Расскажите в комментариях, что Вам понравилось в данном уроке? Какую полезную информацию Вы для себя увидели?

Источник

Разбираем возможности конвертирования HTML в PDF браузером Google Chrome

Как перевести хтмл в пдф

Недавно в одном стартапе я решал задачу генерации билетов в формате PDF. На тот момент уже был готов сайт с устоявшимся стеком технологий, поэтому я искал подход, который бы не потребовал использования дополнительных инструментов. В итоге я предложил сперва создавать билеты в формате HTML, а затем конвертировать в PDF с помощью браузера Chrome. Как оказалось, данным способом можно генерировать не только билеты, богато декорированные CSS, но и самые разные отчеты с графиками на JavaScript. В этой статье я расскажу о том, как для этих целей запустить Chrome, дам несколько советов по настройке CSS, а так же обсужу недостатки данного решения.

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

Почему выбран именно этот вариант?

Самым главным преимуществом является то, что для генерации PDF браузером Chrome не нужно расширять технологический стек. Фронтенд разработчики создают HTML привычными средствами разработки и сразу видят промежуточные результаты труда в браузере. В это же время Chrome уже наверняка крутится в тестах и перенести его на бекенд не составляет большого труда. Так же следует отметить тот факт, что верстальщику становится доступен весь арсенал css свойств включая Flexbox и Grid.
О недостатках и способах их обхода я расскажу по ходу статьи.

Решаем задачу одной строкой

В командной строке вызываем Chrome в безголовом режиме с сохранением страницы в pdf:

Если у Вас уже есть генератор HTML документов, вместо https://google.com укажите URL для получения этого документа.

Добавляем CSS

Запускаем Chrome через Selenium

Для получения PDF файла можно запустить этот пример из командной строки указав url и имя файла для сохранения PDF, либо вызвать функцию get_pdf_from_html и передать ей три аргумента:

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

Типографика в CSS

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

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

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

Посредством свойства page-break-after можно запретить разрыв страницы сразу после некоторого элемента, например, заголовка второго уровня:

Свойство page-break-inside поможет избежать разрыва страниц там, где делать это нежелательно, например посреди таблицы

Свойства orphans и orphans помогут избежать разрыва страниц в начале и в конце абзаца:

Что с производительностью?

На Core i5-8600K 3600MHz в один поток одно преобразование простого документа выполняется за 0.6 сек. На моей портативной печатной машинке конца 2013 года 2.4 Ггц — 1.5 секунды.
Очевидно, что основные ресурсы тратятся на запуск браузера. Можно сократить время преобразования большого количества файлов, если запустить Chrome один раз как микросервис и отправлять ему URL для преобразования. Реализация этого способа выходит за рамки данной статьи.

Что еще не так?

Я вижу две основные проблемы:

Выводы

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *