Pull to refresh

HTML в PDF

Reading time 2 min
Views 119K
html to pdf

В далеком 2008 году уже была написана подобная статья и я попытался применить знания, но, к сожалению, не справился с русским языком (на denwer-е работал, на хостинге нет). Возможно сказалось отсутствие опыта. А недавно нашел хорошую библиотеку и решил поделиться. Топик, скорее всего, адресован начинающим программистом и ни на, что не претендует.

Для начала поставим задачу:


  1. Процесс конвертации должен быть простым — минимум кода;
  2. Отображать русский язык «из коробки»;
  3. Понимать html теги, изображения, CSS;
  4. Использовать бесплатную и хорошо документированную библиотеку.

Вводные данные


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

Реализация


Скачиваем и распаковываем в корневую директорию последнюю версию mPDF. Там же создадим файл index.php и добавим следующий код:
<?php
$html = '<table_ border="1"><tr_><td_>Пример 1</td_><td_>Пример 2</td_><td_>Пример 3</td_><td_>Пример 4</td_></tr_>
<tr_><td_>Пример 5</td_><td_>Пример 6</td_><td_>Пример 7</td_><td_><a_ href="http://mpdf.bpm1.com/" title="mPDF">mPDF</a_></td_></tr_></table_>';

include("mpdf50/mpdf.php");

$mpdf = new mPDF('utf-8', 'A4', '8', '', 10, 10, 7, 7, 10, 10); /*задаем формат, отступы и.т.д.*/
$mpdf->charset_in = 'cp1251'; /*не забываем про русский*/

$stylesheet = file_get_contents('style.css'); /*подключаем css*/
$mpdf->WriteHTML($stylesheet, 1);

$mpdf->list_indent_first_level = 0;
$mpdf->WriteHTML($html, 2); /*формируем pdf*/
$mpdf->Output('mpdf.pdf', 'I');
?>


Код css-файла:
table {text-align: center;font-size: 20pt;width: 100%;}

Работу библиотеки можно проверить на официальном сайте. Или, к примеру, сформировать вышеописанный пример.

Вот и все. Спасибо.

P.S.: Огромное спасибо хаброюзерам: rachiu, Zorkus, FeNUMe, Atrax, AusTiN за поддержку и человеческое отношение к новичкам.
Tags:
Hubs:
+114
Comments 81
Comments Comments 81

Articles