2014-01-02 5 views
4

Постоянно (что означает каждый раз) Я пытаюсь загрузить относительно большое количество HTML, связанного с клиентской формой, в dompdf. Я получаю либо сообщение об ошибке темы, либо, иногда, другую ошибку , Если я прокомментирую код для любого из 9 страниц в документе PDF, он будет работать. У меня была такая же проблема в прошлом с отчетами о переменной длины (это форма, которая всегда 9 страниц), когда достигается определенная неопределенная критическая масса данных. Другие сообщения, которые я видел, связанные с этой проблемой, всегда включают последующие комментарии, настаивающие на том, что исходный плакат предоставляет HTML. Я пытался это сделать, но это намного превышает допустимый предел. Чтобы уменьшить количество HTML, вы получите HTML-код, что dompdf не будет иметь проблем с рендерингом, поэтому я не уверен, как перейти к получению разрешения для этого. Я мог бы предоставить ссылку на страницу, но для этого потребуется пароль пользователя &, и результирующая страница будет содержать информацию, которая не предназначена для общественного потребления. Если нет никакой помощи, чтобы быть здесь, может ли кто-нибудь предложить другой форум, где я мог бы получить помощь?dompdf «Максимальное время выполнения 30 секунд превышено»

Вот несколько особенностей HTML, которые я могу перечислить, которые могут помочь в диагностике проблемы: Он построен почти полностью с использованием таблиц HTML. Ни одна из таблиц не охватывает несколько страниц. Нет элементов управления textarea.

+1

ошибка: ваш скрипт занимает более 30 секунд, и PHP его убивает. Либо увеличьте (или устраните) максимальный срок выполнения, улучшите свой код, чтобы он стал более эффективным и мог выполнить задание в течение срока, либо разбить его так, чтобы каждая отдельная часть попадала под лимит. –

+1

Таблицы не охватывают страницы, но выполняют ли какие-либо из ячеек таблицы? Это действительно единственное место, где dompdf имеет проблемы с таблицами. Хотя, как правило, dompdf использует больше ресурсов при рендеринге таблиц. Кроме того, какую версию dompdf вы используете? – BrianS

+0

У вас есть изображения в вашем PDF-документе? Когда я использовал dompdf в прошлом с большими изображениями, он имеет тенденцию к сбою, но после уменьшения размера изображения кажется, что он работает нормально. – Erebus

ответ

2

Здесь задан временной интервал, который в секундах. Установите -1 для неограниченного срока. set_time_limit (500);

+3

. Настройка сроков для скрипта, который отображается нормально (без подачи его в DomPDF), не является решением! Хуже того, DomPDF будет просто кратковременно работать, потреблять больше памяти и поддерживать высокую загрузку процессора дольше. @Phil Young's и Saad отвечают на точку в том же направлении. – 4levels

+0

Да @ 4levels, это не долгосрочное решение. –

4

У меня также были проблемы с domPdf, и они не могли их решить. Я думаю, вы всегда можете вставить ini_set для max_execution_time в свой контроллер, если вы застряли.

В конце концов я переехал в MPDF, и это очень хорошо работает для меня. Кажется, это самая портативная и хорошо сохранившаяся библиотека PHP HTML для PDF, которую я нашел.

Я не уверен, что должен опубликовать это как ответ или комментарий, дайте мне знать, если это будет комментарий вместо этого.

+0

hello @Ben Я использую mpdf, но в mpdf, когда мое содержимое страницы больше, чем одна страница, в то время это не работа, поэтому я пытаюсь dompdf. если у вас есть решение моей проблемы в mpdf, тогда объясните –

3

Я знаю, что это был дан ответ, но я просто хотел бы добавить, DOMPDF не любит вложенные таблицы

http://eureka.ykyuen.info/2011/04/29/php-dompdf-render-timeout-problem/

+0

Регулировка сроков для страницы, которая обычно отображается (без подачи ее в DomPDF), не является решением и даже делает ее еще хуже, поскольку DomPDF будет просто терпеть крах дольше, потреблять больше памяти и поддерживать большую загрузку процессора дольше. Я могу подтвердить, что вложенные таблицы, таблицы, охватывающие страницы, излишние содержимое - все больные точки в DomPDF (у меня даже были ложные срабатывания при обнаружении вирусов из-за ошибок в HTML-содержимом). MPDF кажется более неактивным, у меня лучшие результаты с http://wkhtmltopdf.org, это стоит того, чтобы настроить его. – 4levels

+0

@ 4levels Я закончил работу с [wkhtmltopdf.org] (http://wkhtmltopdf.org/), но я использовал [knp-snappy library] (https://github.com/KnpLabs/snappy) как мой PHP-библиотека, чтобы сидеть inbetween, никаких проблем вообще, так как я сделал это примерно через месяц или два после того, как я написал это сообщение. С тех пор я использовал его во всех своих проектах. –

4

Это случилось со мной, и проблема была довольно маленькой.

Помимо увеличения timelimit, проверьте, переполнен ли ваш контент или нет, я задавал формат бумаги в формате A4, но когда я изменил его на A3, страница отображалась правильно и, следовательно, не занимала много времени (для библиотека для определения переполнения страницы)

$dompdf = new DOMPDF(); 
$dompdf->set_paper('A3','landscape'); //Changed A4 to A3 
$dompdf->load_html($html); 
$dompdf->render(); 
Смежные вопросы