Опубликовано 07/05/2015
tcpdf - библиотека для создания pdf файлов средствами php
Во время создания pdf tcpdf инициализирует каждый шрифт используемый для создания pdf файла, что сильно замедляет процесс генерирования pdf файлов.
Недавно нашел возможность ускорить процесс . Данный метод увеличил скорость создания pdf файлов в 2 раза.
Вариант включающий кириллицу: файл tcpdf.pdf , строка 8800, заменить
$font = TCPDF_FONTS::_getTrueTypeFontSubset($font, $subsetchars);
на:
$cached_font_file = $fontfile.'.cached';
if (!file_exists($cached_font_file)){
// calculate $font first time
$subsetchars = array_fill(0, 512, true); // fill subset for all chars 0-512
// Cyrillic Chars (0410–044F)
for($i=1040;$i <= 1103;$i++){
$subsetchars[$i] = true;
}
$font = TCPDF_FONTS::_getTrueTypeFontSubset($font, $subsetchars);
// and then save $font to file for further use
$fp=fopen($cached_font_file,'w');
$flat_array = serialize($font);
fwrite($fp,$flat_array);
fclose($fp);
}
else {
// cache file exist, load file
$fp=fopen($cached_font_file,'r');
$flat_array = fread($fp,filesize($cached_font_file));
fclose($fp);
$font = unserialize($flat_array);
}
Данный скрипт будет сохранять обработанные шрифты в папку tcpdf/fonts/ c расширением .cached
Добавить комментарий