Дата: 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 не подходит для решения наших задач, так как требует настройки на сервере несовместимые с настройками для Битрикс.
 ACHTUNG!!!
Дата актуальности информации: 30.12.2020
     C 2020 года 1С-Битрикс решил проблему с mbstring.func_overload = 2. Для того чтобы не зависеть от данной настройки PHP, необходимо обновить продукт и обновить Bitrix VM. Таким образом, выше описанный вердикт актуален только для старых версий движка и виртуальной машины.
Вы можете оставить заявку на обновление вашего Битрикс до актуальной версии по данный ссылке:
Заявка на обновление Битрикс до актуальной версии
   

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

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

А главное без всяких дополнительных настроек на сервере и "танцев с бубном", сразу заработал на одном сервере с Битрикс, и, "О Хвала Аллаху!!!", корректно отобразил текст на русском языке. Также TCPDF-библиотека была протестирована на поддержку казахского языка (Қазақ тілі).

Вердикт: tcPDF - это та библиотека, что нам нужна и принята на вооружения для конвертации документов в PDF-формат и интеграции с CRM Битрикс. Библиотека поддерживает национальные языки: русский, казахский, ну и скорее всего все доугие языки.
 ACHTUNG!!!
Дата актуальности информации: 30.12.2020
    После обновления PHP до версии 7.4 и изменение mbstring.func_overload = 0, обнаружились проблемы поддержки национальных языков (тестировалась на поддержке казахского языка). При этом кириллица (русский язык) поддерживется в полном объеме.  
Если вам требуется помощь в обновлении Битрикс виртуально машины, или сайта на движке Битрикс Управление Сайтом (БУС), то можете оставить заявку на обновление BitrixVM до актуальной версии по данный ссылке:
Заявка на обновление обновление BitrixVM

Несколько примеров: 
  1. пример генерации данной статьи через tcPDF
  2. генератор сертификатов в PDF


Заказать звонок

Укажите свой контактный телефон, и мы перезвоним вам в течении 5 минут

Отправить заявку
Прикрепить свои файлы