воскресенье, 29 января 2012 г.

Создание PDF документа средствами php

Создание PDF документа средствами php

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

В данном уроке мы создадим  pdf файл, в котором создадим шапку и футер а потом заполним его. Использовать мы будем библиотеку tcpdf.

Большой плюс данной библиотеки, на мой взгляд, в том, что не надо шаманить с кодировками. Можно генерировать русскоязычные документы pdf используя кодировку utf-8.

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

require_once('tcpdf/tcpdf.php');

Создаем новый объект TCPDF:

$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);

Смотрим документацию и видим:

TCPDF::__construct       ($orientation = 'P',

                               $unit = 'mm',

                               $format = 'A4',

                               $unicode = true,

                               $encoding = 'UTF-8',

                               $diskcache = false,

                               $pdfa = false

                )

Первый параметр – ориентация страницы.( P-книжная, L-альбомная).

Второй параметр – единица измерения, мы выбираем миллиметры.

Третий – формат страницы.

Четвертый -  юникод или нет

Пятый – кодировка

Шестой –использование RAM memory. Уменьшение её использования за счет diskcache.

Седьмой – нужен ли нам pdfa или нет. Что это такое можете почитать здесь.

Мы сделаем для нашего документа футер и хедер. Начнем с хедера:

$pdf->SetHeaderData('logo.png', '30', 'phpjs.ru', ''); //Logo.png должен лежать в папке tcpdf/images/. $pdf->setHeaderFont(Array('freeserifi', '', '10')); //В параметрах: шрифт – передаем freeserifi и размер шрифта. $pdf->setFooterFont(Array('freeserifi', '', '10'));//тоже самое делаем для футера $pdf->SetMargins('20', '20', '20');//определяем отступы нашего документа $pdf->SetHeaderMargin('5'); $pdf->SetFooterMargin(5);

Перейдем к выводу текста на страницу. Для начала нам надо эту страницу создать.

$pdf->SetFont('freeserif', '', 12);//шрифт текста на странице $pdf->AddPage();//добавляем страницу $text = 'Текст на странице';//file_get_contents('tcpdf/cache/utf8test.txt', false); $pdf->SetTextColor(0, 63, 127);//цвет текста на странице $pdf->Write(5, $text, '', 0, '', false, 0, false, false, 0); //выводим текст на эран //и для примера выведем html код $html = '<br /><br /><table border="1"><tr><td>PHPjs.ru <img src="logo.png" width="50"></td></tr></table>'; $pdf->writeHTML($html, true, false, true, false, ''); $pdf->Output('example.pdf', 'I');?>

Комментариев нет:

Отправить комментарий