Создать сотни PDF

Мне нужно сгенерировать 270 PDF, и я использую DOMPDF. Проблема в том, что после генерации 20 PDF я получаю внутреннюю ошибку сервера. Я также установил ограничение по времени на ноль.
Каков будет лучший способ создать много PDF?

-4

Решение

Чтобы генерировать большое количество документов с использованием Dompdf, я бы вызывал внешний процесс для каждого рендера. Это может быть как быстрее, так и менее ресурсоемким (а именно в отношении использования памяти) [ссылка].

Шаги, которые я использовал в прошлом для аналогичной задачи:

  1. Создайте каждый HTML-документ для рендеринга (при желании сохраните в файл).
  2. Создайте процесс для отображения этого HTML в PDF.
  3. Если HTML был сохранен в файл, удалите HTML.

Итак, шаг 2 будет примерно таким:

foreach ($htmldocs as $htmldoc) {
exec("php dompdf.php $htmldoc");
}

И dompdf.php будет сценарий, который создает экземпляр dompdf и отображает HTML-файл.

$dompdf = new Dompdf();
$dompdf->load_html_file($argv[1]);
$dompdf->render();
$filename = basename($argv[1], '.html').'.pdf';
file_put_contents($filename, $dompdf->output());

Информация о бонусе: Когда Я сделал что-то подобное Я на самом деле создавал большой документ с легко определяемыми страницами. В качестве четвертого шага в этом процессе я использовал Pdftk объединить визуализированные PDF документы в один PDF.

$exec_cmd = 'pdftk';
for ($html_doc = 1; $html_doc <= count($html_docs); $html_doc++) {
$exec_cmd .= ' ' . TEMP_DIR . '/' . $filenames[$html_doc] . '.pdf';
}
$exec_cmd .= ' cat output ' . FILESTORE_DIR . '/' . $packet_gen_info['packet_code'] . '.pdf';
exec($exec_cmd, $pdftk_output, $pdftk_return_code);
2

Другие решения

Вы должны посмотреть на wkhtmltopdf. Это отличный инструмент, и я использую его для создания тысяч PDF-файлов с тысячами страниц без каких-либо проблем.

Синтаксис прост, как может быть:

wkhtmltopdf http://google.com google.pdf

Это сделает PDF с главной страницы Google.

1

По вопросам рекламы [email protected]