Здравствуйте! В данной статье мы рассмотрим автоматическую генерацию PDF документа средствами PHP. Реализуем возможность сохранять любую статью на сайте в PDF формате. Данный функционал будем разворачивать на CMS 1c-Bitrix. Чем больше изучаю эту платформу, тем больше убеждаюсь в качестве её разработки.
Итак, общий алгоритм будет следующим: при сохранении, ипдейте элемента в инф. блоке, создается/обновляется PDF документ. Что бы ни изобретать велосипед, для создания PDF файла, будем использовать библиотеку mPDF (http://mpdf1.com/) . На момент написания статьи, последний актуальный релиз mPDF v5.7. Качаем архив, разархивируем и заливаем на сервер (в корень сайта).
Теперь задача стоит в выборе метода генерации, можно создать отдельный скрипт, передать ему ID элемента и на выходе выплюнуть сгенерированный файл, можно повесить обработчик на события: создание и апдейт элемента инф. блока. Для теста я выбрал второй вариант, т.к. поток статей не очень большой и не будет существенной нагрузки при перезаписи или создании PDF документов.
Теперь при создании или апдейте элемента будет создаваться или обновляться PDF файл с текстом статьи. В данном примере текст документа генерируется из названия и детального описания элемента. Названием файла выступает его уникальный ID.
Так же прописываем обработчик, который будет удалять сгенерированный файл, при удалении элемента:
Щербак Михаил написал: require($_SERVER["DOCUMENT_ROOT"]."/MPDF57/mpdf.php");
Здравствуйте. Подскажите что не так. У меня с этой строчной "require($_SERVER["DOCUMENT_ROOT"]."/Папка/mpdf.php");" в файле init.php функция IBlockAfterSave зависает. помогает только Restart httpd В логах ничего нет. версию MPDF пробовал и 5.7 и 6.0. Заранее спасибо.
Ага. Меня тоже засмущала строчка из описания библиотеки. mPDF is not compatible with PHP function overloading (mbstring.func_overload) Сейчас у меня ка просит битрикс mbstring.func_overload=2 PHP Version 7.0.33Ну все же попробую...
Груздев Александр, Мы решили эту проблему просто. Для директории со скриптом который генерит pdf установили значение mbstring.func_overload=0 А остальной сайт работает с mbstring.func_overload=2 ))
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».