how to Done a PDF Creation in slim framework?
In Slim I never did, but in another PHP framework I use “mpdf”. https://github.com/mpdf/mpdf
I’m using TCPDF
kindly send a steps to do PDF
creation using TCPDF in slim
As long as you don’t want to download / stream the generated PDF file, there is no Slim specific step required.
Installation
composer require tecnickcom/tcpdf
Creating a PDF
$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false, true);
$pdf->addPage();
$pdf->write(0, 'My Test');
// Render and return pdf content as string
$content = $pdf->output('doc.pdf', 'S');
$response->getBody()->write($content);
$response = $response
->withHeader('Content-Type', 'application/pdf')
->withHeader('Content-Disposition', 'attachment; filename="filename.pdf"');
return $response;
Sending a PDF to the client (browser)
// Send file to the browser as download
$fileName = 'example.pdf';
$response = $response->withHeader('Content-Type', 'application/pdf');
$response = $response->withHeader('Content-Disposition', sprintf('attachment; filename="%s"', $fileName));
$stream = fopen('php://memory', 'w+');
fwrite($stream, $content);
rewind($stream);
return $response->withBody(new \Slim\Http\Stream($stream));
If you want to return the entire content at once, you could use this workaround:
$stream = fopen('php://memory', 'w+');
fwrite($stream, $content);
rewind($stream);
$response->getBody()->write(fread($stream, (int)fstat($stream)['size']));
return $response;
I use TCPDF and SetaPDF.
For easy stuff like invoices I use domPDF (because of LPGL-licence and it is pretty lightweight). In other context I used wkhtmltopdf with a php-wrapper, but that requires a binary on the server. I think all these solutions have limited css-capacities, so if you want to create a pdf-version of a website with all styles then you might run into problems.
Not sure about your usecase, but for an ebook-project I work with the script pagedjs.org. It is a JS-polyfill for paged media css. It only works in chrome, but they also provide a headless version (never tried it). The output is highly professional with running headers, footers, footnotes and more. There is a pretty cool tool called https://printcss.live/ where you can experiment with some pdf-rendering engines…