Заказать звонок
Логин
Пароль
Войти как пользователь
Логин
Пароль
Войти как пользователь

Битрикс и pdf. Как сохранять информацию из инфоблока в PDF

20 мар 2019
#Разработчику
Бывают ситуации, когда нужно сохранить информацию в PDF и, например, отправить этот файл клиенту. Расскажу быстрый путь как это сделать.
Сразу уточню, эта информация предназначена для разработчиков или технических специалистов. Все настройки приведены для виртуальной машины Битрикс. Цель данного материала - показать как работает генерация PDF-файлов на сервере и подсказать быстрое решение этой задачи.

Поехали.

Я пробовал много модулей для конвертации html в pdf и расскажу о самом простом и который без проблем поддерживает русский язык. Это MPDF версии 6. Можете устанавливать версию и выше, но зачастую необходимости в этом нет, а проблем с настройками получите гораздо больше.

Итак, скачиваете архив MPDF здесь. Закачиваете все файлы к себе на сайт в директорию, например, /mpdf/.

Дальше вам нужно определить, в какой директории вы будете генерировать pdf. Это важно, т.к. для этой директории мы установим специальные параметры на сервере. Например, вы будете генерировать pdf в папке /pdf/. Размещаете там файл index.php в кодировке utf-8, в котором размещаете такой код:
<?
// подключение служебной части пролога для работы API Битрикса
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
include($_SERVER["DOCUMENT_ROOT"]."/mpdf/mpdf.php");

$html = '<div>Здесь содержимое PDF в виде html-кода.<br>Спасибо RushStudio.by за помощь.</div>';

//настройки для работы с кириллическими символами
$mpdf = new mPDF('utf-8', 'A4', '10', 'Arial');
$mpdf->charset_in = 'utf-8'; 

//генерируем PDF
$mpdf->WriteHTML($html);
$mpdf->Output();

// подключение служебной части эпилога
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
exit;
?>


Дальше нам нужно сделать настройки на сервере. Открываем файл /etc/httpd/bx/custom/z_bx_custom.conf
В этом файле хранятся пользовательские настройки Apache. Дописываем туда:

<Directory /home/bitrix/www/pdf>
    php_admin_value mbstring.func_overload 0
</Directory>


Где /home/bitrix/www/pdf - путь на сервере к директории, где генерируются PDF. Эту настройку нужно сделать, чтобы работала поддержка русского языка.

Теперь вы можете открыть https://вашсайт/pdf/ и получить PDF-файл. Осталось получить нужные данные из инфоблока и добавить их в html для PDF.
  • Комментарии
Загрузка комментариев...