Мне нужно создать 270 PDF и использовать DOMPDF. Проблема в том, что после генерации 20 PDF я получаю внутреннюю ошибку сервера. Я также установил ограничение по времени на ноль. Что было бы лучшим способом генерации большого количества PDF-файлов?Создайте сотни PDF
ответ
Вы должны посмотреть на wkhtmltopdf. Это отличный инструмент, и я использовал его для создания тысяч PDF-файлов с тысячами страниц без каких-либо проблем.
Синтаксис прост, как может быть:
wkhtmltopdf http://google.com google.pdf
Это позволит сделать PDF из Google домашней страницы.
Стоит отметить, что wkhtmltopdf запускает фактический (безголовый) браузер, поэтому он не является ни легким, ни особенно быстрым. Это не может быть хорошей альтернативой пакетной обработке, особенно. если работа не связана с сложными макетами. –
Уверен, что это действительно зависит от данных, которые нужно преобразовать. Сложные макеты могут выглядеть не очень хорошо. Вы также можете использовать 'tcpdf' для ручной компоновки страниц. Таким образом, вы получаете больше энергии за конечный результат, но также требуется немного больше усилий для создания/кодирования. Это может быть и быстрее, если у вас есть приложение для проверки работоспособности. – cb0
@ cb0 Я генерирую вывод динамически ... поэтому у меня есть переменная $ output = "my html", и мне нужно сохранить pdf в папку. В этом случае я могу это: wkhtmltopdf $ output /folder/mypdf.pdf или нет? – Eliana
Чтобы создать большое количество документов с использованием Dompdf, я создавал внешний процесс для каждого рендеринга. Это может быть как более быстрым, так и менее ресурсоемким (а именно, с использованием памяти) [ref].
шаги, которые я использовал в прошлом для подобной задачи были:
- Сформировать каждый HTML-документ для визуализации (возможно сохранить в файл).
- Создайте процесс визуализации этого HTML в PDF.
- Если 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());
Информация Bonus: Когда I've done something similar я был на самом деле создает довольно большой документ с легкостью определенных страниц. В качестве четвертого шага в этом процессе я использовал 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);
- 1. Создайте сотни документов сразу?
- 2. Программно создайте фотоальбомы PDF
- 3. Создайте ppsx из pdf
- 4. Создайте PDF-файл в формате PDF
- 5. Создайте PDF-файл из gdoc
- 6. Создайте многостраничный PDF в Swift
- 7. Создайте PDF для iPhone, как?
- 8. Создайте pdf-файл из mysql
- 9. Создайте прозрачный цвет в PDF
- 10. Создайте pdf-файл с формой
- 11. Создайте службу переднего конца PDF
- 12. Создайте файл PDF с PHP
- 13. Создайте PDF с экрана NSView
- 14. Создайте PDF-файл в Myeclipse
- 15. Создайте оглавление из pdf-файла
- 16. Создайте файл PDF в памяти
- 17. Создайте и создайте PDF-файл с iTextSharp или аналогичным
- 18. Создайте pdf динамически и подпишите его с помощью itext pdf
- 19. Создайте новый Pdf из существующих Pdf и (HTML + CSS)
- 20. Создайте PDF с возможностью поиска из другого PDF или изображения
- 21. Сотни ошибок, включая windows.h
- 22. Schedulers.io создает сотни RxCachedThreadSchedulers
- 23. округлить до полной сотни
- 24. Сотни маршрутов MVC ASP.NET
- 25. Формат миллиарды тысяч сотни
- 26. Htaccess переадресацией - сотни сообщений
- 27. Округление до ближайшей сотни
- 28. Вызов addEventListener сотни раз
- 29. сотни ошибок в VS2008
- 30. Создайте документ PDF, используя только VB.NET?
Возможно, по одному за раз? –
@MarkBaker я создаю pdf в то время как .. и в таблицу есть 270 записей – Eliana
Код состояния «Внутренняя ошибка сервера» (или пустая страница) означает, что ваш скрипт выдает ошибку, но вы не настроили PHP на отображать сообщения об ошибках. Это то, что вам нужно адресовать, прежде чем идти дальше, потому что сложно правильно закодировать без помощи сообщений об ошибках. Правило большого количества сообщений об ошибках должно отображаться при разработке и входе в систему. В качестве отправной точки я предлагаю вам отредактировать общесистемный файл 'php.ini' на компьютере, на котором вы разрабатываете и настраиваете директивы' error_reporting' и 'display_errors' ([подробнее здесь] (http://stackoverflow.com/ а/5680885/13508)). –