Битрикс: Документы в PDF-формате

Дата: 10.07.2017

2017-04-23_085653.png
исполнитель: «WEB for ALL»-Доступные Технологии.

подготовил: руководитель проекта «WEB for ALL»

автор:  Баязи А.

Задача

1. Выбор Open Source-библиотеку для конвертирования в PDF-формат 

2. Библиотека должна быть совместима с Битрикс.

3. Библиотека должна поддерживать русский алфавит (кириллицу).

Сравнение и выбор PDF-конвертера.

1. FPDF - генератор PDF-документов.

FPDF является чистым PHP кодом и легко подключается к скриптам командой include() и другими подобными. Скачать класс и ознакомиться с подробной документацией можно на сайте www.fpdf.org. Дополнительным (порой решающим) аргументом в пользу этого решения можно рассматривать его бесплатность для использования как в личных, так и коммерческих целях. Цитата из лицензионного соглашения:

"FPDF is Freeware (it is stated at the beginning of the source file). There is no usage restriction. You may embed it freely in your application (commercial or not), with or without modification".

Разрешается также видоизменять исходный код класса. Никаких ограничений.

Недостатком данной библиотеки является тот факт, что она не имеет поддержки UTF-8, и как следствие изначально отсутствует поддержка русского языка. Чтобы осуществить поддержку кириллицы придется "потанцевать с бубном". "Танцы с бубном" выходят за рамки нашей культурной программы статьи. О том как настроить FPDF для поддержки Кириллицы можете прочитать тут.

Вердикт: FPDF не подходит для решения наших задач, так как требует дополнительной настройки на сервере.  

 2. mPDF - генератор PDF-документов.

mPDF - php библиотека, которая также легко подключается командой include(). mPDF - библиотека генерирования PDF-формата, свое дело, хоть и медленно, делает. Образцы печатей с подписями на прозрачных PNG-файлах интегрируются простой HTML- разметкой. Наиболее простой способ использования mPDF — сгенерировать HTML и на его основе получить готовый файл. 

$html = '


Some docuemnt text is here.

<br><br><br><br><br><br><br><br><br><br><br><br>
<div> Бендер О.  ________________</div>

<img src="0002.png" style="float: left; margin: -2.5cm 0 0 1.5cm; image-resolution: 300dpi;">

';

include("../mpdf.php");

$mpdf=new mPDF();
$mpdf->WriteHTML($html);
$mpdf->Output(); 

exit;
Проблема возникла, когда выяснилось, что php-настройки сервера для работы этой библиотеки несовместимы с настройками для Битрикс.
Дело в параметре:mbstring.func_overload
По настройкам PHP: mpdf должен быть mbstring.func_overload = 0, но сделать этого нельзя, т.к. Битрикс работает на mbstring.func_overload = 2

 Вердикт: mPDF не подходит для решения наших задач, так как требует настройки на сервере несовместимые с настройками для Битрикс.   

3. tcPDF - генератор PDF-документов.

TCPDF – это популярная Open Source-библиотека языка PHP, предназначенная для создания PDF-документов. Библиотека TCPDF полностью написана на PHP и выполняет все необходимые преобразования без подключения внешних библиотек.

А главное без всяких дополнительных настроек на сервере и "танцев с бубном", сразу заработал на одном сервере с Битрикс, и, "О Хвала Аллаху!!!", корректно отобразил текст на русском языке.

Вердикт: tcPDF - это та библиотека, что нам нужна и принята на вооружения для конвертации документов в PDF-формат и интеграции с CRM Битрикс.

Данную статью конвертированную через tcPDF можно посмотреть по ссылке: Битрикс: Документы в PDF-формате

В следующий раз расскажу как подключить и использовать данную  библиотеку. И что можно сделать с ее помощью.
To be continue...