hiii i want to generate pdf of an invoice . pdf is generate but it can't display an image
i use laravel/snappy for window
here is my view file
<div>
<img src="{{ asset('image/logo.png') }}" class="pl-3" width="15%" />
Download PDF
</div>
here is my controller
if($request->has('download')) {
$pdf = PDF::loadView('pdfview')-
>save(storage_path('invoices/aazsaa.pdf'));
return $pdf->download('userlist.pdf');
}
image is shown in view but when i download image is not render
yehh i got the solution of my problem
i use base64 encoder to display an image
here is my view file
<img src="data:image/png;base64,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>
i change the src of image in tag. i just put base64 string of an image instead of path, and it's work
Related
I am saving an uploaded image like this:
$profile_picture = $request->file('profile_picture');
$user->profile_picture = $profile_picture->getClientOriginalName();
Storage::disk('public')->put( $user->profile_picture, $request->file('profile_picture') );
and then I am trying to display that image in HTML with:
<img class="img-fluid" src="{{ asset('storage/'. Auth::user()->profile_picture) }}">
the image is being saved in storage/app/public, but the image is not showing in html, how do i go about this?
thank you
You may use response method on a Laravel filesystem
return Storage::disk('public')->response($user->profile_picture);
N.B: In order to do that, you need a Laravel route. The above code should be located in a controller method
Im currently using barryvdh/laravel-snappy to convert my data to pdf format.
The code i'm using is :
public function generate_pdf($id){
$rfq = RFQ::find($id);
$data = array(
'rfq' => $rfq,
);
//return view('rfq.pdf')->with('rfq', $rfq);
$pdf = PDF::loadView('rfq.pdf',$data)->setPaper('a4')->setOption('margin-bottom', 0);
return $pdf->download($rfq->rfq_no.'-'.date_timestamp_get(date_create()).'.pdf');
}
And then, I have to add an image to the pdf file. So i have to add this line to the pdf.blade.php file.
<img src="{{ asset('img/logo.png') }}">
But then, the image isn't showing properly.
It's visible, but it's OPACITY is very low, around 0.2.
But when viewing the actual image file, and the one in the actual html template, everything's good.
I tried <img src="data:image/png;base64,{{ base64_encode(#file_get_contents(asset('img/logo.png'))) }}">
but still, it's the same.
How to render webp image at dompdf??
Below are my view code :
<body>
<img src="4.webp">
<br>
<img src="1.png">
</body>
Below are my controller code :
$pdf = PDF::loadView( 'admin.registrations.index' );
return $pdf->stream( 'image.pdf' );
The png image is showed, but the webp doesn't.
I try to open the page via blade view :
return view( 'admin.registrations.index' );
Both image showed..
How to enable webp at dompdf??
Dompdf does not currently (up to and including 0.7.0) support WebP. Supported image types are:
BMP
GIF
JPEG
PNG
SVG (partial, using php-svg-lib)
Recommend that you submit an enhancement request to the issue tracker: https://github.com/dompdf/dompdf/issues/new
i want to make qrcode, in there i can make it but i have something trouble when i want to change the format of qrcode to png file. but its only show symbol
here my view :
<?php echo QrCode::size(265)->generate($row->id) ?>
this qrcode i use :
"simplesoftwareio/simple-qrcode": "~1"
here my referance : https://www.simplesoftware.io/docs/simple-qrcode
can anyone help me ? or can someone give me solution ?
before i change format to png :
and this after i change it :
There are more simple example available as well.
<img src="data:image/png;base64, {!! base64_encode(QrCode::format('png')->size(100)->generate('QrCode as PNG image!')) !!} ">
If you are formatting it as png file format, you need to include it with a <img> tag.
Taken from the documentation
//Inside of a blade template.
<img src="{!!$message->embedData(QrCode::format('png')->generate('Embed me into an e-mail!'), 'QrCode.png', 'image/png')!!}">
You can also do this:
$png = QrCode::format('png')->size(512)->generate(1);
$png = base64_encode($png);
echo "<img src='data:image/png;base64," . $png . "'>";
In controller
$path = getenv('IMAGE_URL')."/img/logo.png";
$png = QrCode::format('png')->merge($path, .17, true)->size(300)->errorCorrection('H')->generate($data);
$png = base64_encode($png);
In blade file
<img src='data:image/png;base64,{{$png}}'>
I came to this page because I needed to create a PNG file to send inline in an email in laravel8.
I used the examples above in order to create the QR code as a png which worked brilliantly. I used the following code:
<img src="data:image/png;base64, {!! base64_encode(QrCode::format('png')->size(100)->generate('QrCode as PNG image!')) !!}" />
However a number of email services (including Gmail) do not display images that use inlined base64 as above. Instead, they require you to add the base64 image as an attachment to the email and then reference that attachment in the img src.
Thankfully laravel (I'm using laravel8) has a really cool function that does this for you, so my code ended up looking like this (which worked):
<?php
$qrCodeAsPng = QrCode::format('png')->size(500)->generate("my text for the QR code");
?>
<img src="{{ $message->embedData($qrCodeAsPng, 'nameForAttachment.png') }}" />
The $message variable is one that is in every blade that is being sent as an email in laravel. In my case I did not want to create an actual image on the server, but if you wanted to use an image that you had stored you would use $message->embed().
Is there a way to check if the file exists in Twig for an image uploaded in a newly created post?
The way I have my post setup is if an image is not uploaded the Twig template will show an empty box with the proportions of where the image should be, but it's a blank box that's awkward to look at.
Question, is if there is a specific command to use with an if statement to check if a file exists if so, display the image code if not do not display the image code.
Image code: (this is the code I want to hide if no image exists to get rid of the empty box)
<div class="entry-thumbnail">
<img width="230" height="172" src="{{ asset(['images/', post.image]|join) }}" class="" alt=""/>
</div>
you could write a twig extension and use some code like this:
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Filesystem\Exception\IOException;
use Symfony\Component\Finder\Finder;
$this->fs=new Filesystem();
if (!$this->fs->exists($directory)) {
$this->logger->info("there is no ".$directory." ...");
} else {
$this->logger->info("Directory ".$directory." already exists.");
}
but i would rather use javascripz like
in your img tag :
<img ... onError="this.src='imagefound.gif';" />
update:
The image Tag has an onError-Handler that triggers when the image in the src attribute is not found. So instead of using this simple inline syntax you could do the same like :
pseudo jquery code:
$(document).on('error','img',function(){
$(this).attr("src","../path/to/placeholerImage.png");
});