Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

drashtantnayak's avatar

Barryvdh DomPDF Issue with multiple pages

Hello, I am trying to generate multiple pages in one pdf using following code but its not allowing me to add page using addPage.

use Barryvdh\DomPDF\Facade\Pdf;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
class TestController extends Controller{
			
				public function create(Request $request)
    			{
        				try {
            								$pdf = PDF::loadView('pdf.page_one', []);
            								$pdf->addPage(view('pdf.page_two'),[]);
            								return $pdf->stream();
        				} catch (\Exception $exception) {
            								Log::error($exception->getMessage());
            								return $exception->getMessage();
        				}
    			}
}

shows following error:

Method [addPage] does not exist on PDF instance. "barryvdh/laravel-dompdf": "^2.0",

0 likes
1 reply
drashtantnayak's avatar
drashtantnayak
OP
Best Answer
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"',
        ]);
    }
}

Please or to participate in this conversation.