Блог о программировании на PHP, Yii2, 1C-Bitrix, а так же о фотографии как хобби и путешествиях.

Генерация pdf для html страницы и bitrix

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

Установка библиотеки:

git clone https://github.com/dompdf/dompdf.git
git submodule init
git submodule update

Пример для генерации pdf:

<?ob_start();?>

<?='text here'?>

<?$html = ob_get_clean();?>

<?set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER["DOCUMENT_ROOT"]."/include/dompdf");

require_once "dompdf_config.inc.php";

$dompdf = new DOMPDF();?>

<?$dompdf->load_html( $html );
$dompdf->render();
$dompdf->stream("test.pdf", array("Attachment" => 0));?>

Для поддержки кириллицы необходимо скопировать Arial.ttf (взять можно в папке /windows/fonts/) в корневую директорию dompdf, и выполнить скрипт load_fonts.php через консоль с параметрами:

php load_fonts.php Arial Arial.ttf

Для поддержки подключаемых css необходимо указать корневую директорию:

$dompdf->set_base_path($_SERVER["DOCUMENT_ROOT"].'/bitrix/templates/print/');

Важно! Для bitrix’a при выводе компонентов, необходимо отключить режим ajax, указав в компоненте параметр AJAX_MODE => «N», иначе pdf не будет генерироваться.