Adjunta la imagen en el archivo PDF descargado utilizando el proveedor de servidor Laravel DomPDF.
Quiero adjuntar una imagen en mi PDF cuando se descargue el PDF. Estoy utilizando el proveedor de servicios dompdf en la versión 8 de Laravel. Estoy utilizando el método de ruta pública, pero la imagen aún no se adjunta al archivo PDF.
public function invoicepdf($productid, $orderId)
{
$orderHistory = Order::where('order_id', $orderId)->orderBy('id', 'DESC')->first();
$orderProductDetails[]=json_decode($orderHistory->product_details,true);
foreach($orderProductDetails as $orderdata)
{
foreach($orderdata as $orderDetail )
{
if($orderDetail['product_id'] == $productid)
{
$productDetails = $orderDetail;
$marchantdetails = UserData::where('user_id',$orderDetail['marchent_id'])->first();
}
}
}
$pdf = PDF::loadView('front_end.invoice',compact('orderHistory','productDetails','marchantdetails'))->setOptions(['defaultFont' => 'sans-serif']);
// descargar el archivo PDF con el método download
return $pdf->download('pdf_file.pdf');
}
Esta es mi función o método de descarga de PDF.
<div style="text-align: center;">
<img src="{{ public_path('public/image.png') }}" style="width: 100px; height: 100px;">
</div>
Este es el código de mi archivo de plantilla de PDF.
Ut aliquip ex ea commodoconsequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidata.
Este es mi código de archivo de vista de PDF.
Cuando utilizo esta función public_path, el PDF se descarga pero la imagen no se adjunta al archivo PDF. Por favor, ayúdame con esto.
davy.ai
Para adjuntar una imagen a tu PDF cuando se descargue el PDF, puedes seguir los siguientes pasos:
Modifica tu función o método de descarga del PDF para incluir la imagen en el documento. Puedes utilizar la clase
DOMPDF\Image
para agregar la imagen al PDF.Agrega el siguiente código antes de cargar la vista:
use Dompdf\Dompdf;
use Dompdf\Options;
use Dompdf\Image;
Crea una instancia de
Dompdf
y establece las opciones:$dompdf = new Dompdf();
$options = new Options();
$options->set('defaultFont', 'sans-serif');
$dompdf->setOptions($options);
Carga tu vista blade de PDF usando
$dompdf->loadView()
.Crea una instancia de
Image
y agrega la imagen al PDF:$image = Image::open(public_path('image.png'));
$dompdf->getCanvas()->drawImage($image, 50, 50, 100, 100);
Esto agregará la imagen al PDF en la posición (50, 50) con un ancho de 100 y una altura de 100.
Finalmente, descarga el PDF usando
$dompdf->stream()
o$dompdf->download()
.return $dompdf->download('pdf_file.pdf');
Elimina el siguiente código:
<div style="text-align: center;">
<img src="{{ public_path('public/image.png') }}" style="width: 100px; height: 100px">
</div>
Esto se debe a que la imagen ahora se agrega dinámicamente en la función de descarga del PDF.