Реалізація генерації PDF
Генерація PDF з HTML: рахунки, квитанції, звіти, сертифікати. Варіанти: серверна (mPDF, TCPDF, Puppeteer) або браузерна (бібліотека клієнта). Серверна дозволяє пакетну обробку, відправлення листів, зберігання.
PHP: mPDF або TCPDF
class InvoiceController
{
public function download(Invoice $invoice)
{
$html = view('invoices.template', ['invoice' => $invoice])->render();
$pdf = new \Mpdf\Mpdf();
$pdf->WriteHTML($html);
return response($pdf->Output('invoice.pdf', 'S'))
->header('Content-Type', 'application/pdf')
->header('Content-Disposition', 'attachment; filename="invoice.pdf"');
}
}
Node.js: Puppeteer
import puppeteer from 'puppeteer';
async function generatePDF(htmlContent: string): Promise<Buffer> {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setContent(htmlContent);
const pdf = await page.pdf({ format: 'A4' });
await browser.close();
return pdf;
}
Асинхронна генерація з чергою
Для великих обсягів: генеруй у фоні, зберігай в S3, відправляй посилання на завантаження електронною поштою.
Терміни реалізації
Базова генерація PDF: 1–2 дні. З чергою, шаблонами та електронною поштою: 2–3 дні.







