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.
composer require tecnickcom/tcpdf
$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;
// 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…