Laravel MPDF carga múltiples vistas.
Estoy usando https://github.com/mccarlosen/laravel-mpdf para generar PDF’s en mi proyecto Laravel.
El código de muestra solo te permite generar un PDF a partir de un archivo.
use PDF;
class ReportController extends Controller {
public function generate_pdf()
{
$data = [
'foo' => 'bar'
];
$pdf = PDF::loadView('pdf.document', $data);
return $pdf->stream('document.pdf');
}
}
Sin embargo, necesito la capacidad de generar un PDF a partir de 2 vistas blade separadas. Este es un ejemplo simplificado, pero básicamente quiero crear una instancia de PDF y luego poder agregar cualquier número de páginas/vistas a ella.
Algo como esto (no funciona):
use PDF;
class ReportController extends Controller {
public function generate_pdf()
{
$data = [
'foo' => 'bar'
];
$pdf = new PDF();
$pdf->loadView('pdf.document1', $data);
$pdf->getMpdf()->AddPage();
$pdf->loadView('pdf.document2', $data);
return $pdf->stream('document.pdf');
}
}
Gracias.
davy.ai
Solución
Puedes lograr esto utilizando el método
addPage()
proporcionado por mPDF. Así es como puedes modificar el código para generar un PDF a partir de dos vistas de cuchilla separadas:En este ejemplo, primero cargamos la primera vista de cuchilla (
pdf.document1
) con los datos proporcionados. Luego utilizamos el métodogetMpdf()
proporcionado por la clasePDF
para obtener el objeto subyacente mPDF y agregar una nueva página utilizando el métodoaddPage()
. Después de agregar una nueva página, cargamos la segunda vista de cuchilla (pdf.document2
) y devolvemos el PDF como un flujo.Este código debería generar ahora un PDF con dos páginas, una para cada vista de cuchilla.