2013-10-11 5 views
1

У меня есть важный файл html для преобразования в файл PDF.Преобразование тяжелого HTML-файла в PDF

Я использую mpdf конвертировать мой HTML, как это:

$file_content = file_get_contents($dir . '/' . $filehtml); 
$mpdf = new mPDF('', '', 0, 'Helvetica', 15, 15, 50, 25, 8, 8); 
$mpdf->useSubstitutions = false; 
$mpdf->CSSselectMedia='mpdf'; 

$mpdf->allow_charset_conversion = true; 
$mpdf->charset_in = 'cp1252'; 
$mpdf->WriteHTML($file_content); 
$mpdf->Output($dir . '/' . $filename, 'F'); 

Он хорошо работает. Обычно.

Проблема заключается в том, что мой файл является довольно тяжелым: ~ 17.5Mb, так file_get_contents бросает мне ошибку:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 18114800 bytes) 

Я попробовал другое решение: Вместо того, чтобы генерировать файл HTML, я попытался поместить $mpdf->WriteHTML($str); в foreach() (который используется для генерации моего HTML-файла).

Проблема время выполнения переходит 1час, который определенно не является приемлемым, в то время генерация HTML-файлах берет меня ~ 1.5sec (согласно JS new Date().getTime();)


Кто-нибудь имеет серверное решение для этой проблемы?

ответ

2

изменения в php.ini

memory_limit = 64M ;//maximum allotted size 

если нет php.ini доступа к вам, то добавьте в .htaccess

php_value memory_limit 64M 

или добавить ниже строки в файл сценария

ini_set('memory_limit', '-1'); 
0

Попробуйте добавить это в ваш .htaccess файл: php_value memory_limit 128M