Level 3
Following code worked.
composer require dompdf/dompdf
composer require barryvdh/laravel-dompdf dompdf/dompdf
use Dompdf\Dompdf;
use Dompdf\Options;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Response;
class PdfController extends Controller
{
public function generatePdf()
{
// Create an instance of Dompdf
$dompdf = new Dompdf();
// Get HTML content from Blade views for each page
$page1 = View::make('page1')->render();
$page2 = View::make('page2')->render();
$page3 = View::make('page3')->render();
// Combine HTML content of all pages
$html = "<html><body>{$page1}<div style='page-break-after: always;'></div>{$page2}<div style='page-break-after: always;'></div>{$page3}</body></html>";
// Load combined HTML content into Dompdf
$dompdf->loadHtml($html);
// Set paper size and orientation for the PDF
$dompdf->setPaper('A3', 'landscape'); // Adjust paper size and orientation as needed
//A3: 'A3' - 297 x 420 mm or 11.7 x 16.5 inches
//A4: 'A4' - 210 x 297 mm or 8.3 x 11.7 inches
//A5: 'A5' - 148 x 210 mm or 5.8 x 8.3 inches
//Letter: 'letter' or '8.5x11' - 8.5 x 11 inches
//Legal: 'legal' or '8.5x14' - 8.5 x 14 inches
//Tabloid: 'tabloid' or '11x17' - 11 x 17 inches
// (Optional) Set options if needed
$options = new Options();
$options->set('isRemoteEnabled', true);
$options->set('isHtml5ParserEnabled', true);
$dompdf->setOptions($options);
// Render the PDF
$dompdf->render();
// Get the generated PDF content
$pdfContent = $dompdf->output();
// Return the PDF content in the response with appropriate headers
return Response::make($pdfContent, 200, [
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'inline; filename="multi_page_pdf.pdf"',
]);
}
}