Я должен создать PDF-документ из большого HTML-кода (создано 1000 или более страниц). Но стандартный метод ограничил меня — память. Стандартный метод:
$html = generatePDF($data_to_pdf);
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->set_paper('a4', 'landscape');
$dompdf->render();
$pdf = $dompdf->output();
file_put_contents('pdf/' . $tmp_name . '.pdf', $pdf);
Память слишком мала, поэтому мне нужно сохранить данные частично. Как генерировать PDF постранично? Или что-то типа того? Как исправить проблему с памятью?
Попробуйте взглянуть на это: https://pdfmerger.codeplex.com/
Затем разделите html, визуализируйте каждую часть в отдельный файл, а затем объедините их.
Это должно работать для вас в этом случае.
ini_set("memory_limit", 64MB);
$html = generatePDF($data_to_pdf);
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->set_paper('a4', 'landscape');
$dompdf->render();
$pdf = $dompdf->output();
file_put_contents('pdf/' . $tmp_name . '.pdf', $pdf);