В далеком 2008 году уже была написана подобная статья и я попытался применить знания, но, к сожалению, не справился с русским языком (на denwer-е работал, на хостинге нет). Возможно сказалось отсутствие опыта. А недавно нашел хорошую библиотеку и решил поделиться. Топик, скорее всего, адресован начинающим программистом и ни на, что не претендует.
Для начала поставим задачу:
- Процесс конвертации должен быть простым — минимум кода;
- Отображать русский язык «из коробки»;
- Понимать html теги, изображения, CSS;
- Использовать бесплатную и хорошо документированную библиотеку.
Вводные данные
Сам процесс на столько прост, что принципиальной разницы в каком фреймворке его использовать нет. Конвертировать данные из 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 за поддержку и человеческое отношение к новичкам.