CMYK Mode after generating a PDF of images in DOMPDF Laravel - php

I am working on HTML to PDF generation, i am using laravel with DOMPDF library, I have 3 different images, i have that image through css and html, its working fine, but after when we downloading the file and opening into Photoshop its show RGB mode
I want it to show cmyk Mode.
This is the output file of my pdf
My PDF download code after rendering the html
$customPaper = array(0,0,4500,2950);
$pdf->setOptions(['dpi'=>300]);
$pdf->loadHTML($html)->setPaper($customPaper)->setWarnings(false)->save($filename.'.pdf');
return $pdf->stream();

Related

TCPDF - CMYK images in PDF appear "mainly black" in Illustrator

I have a problem when opening with Illustrator a PDF generated with TCPDF that embeds a CMYK image (jpg).
The PDF looks just fine when opening it on a web browser or with Acrobat Reader.
But when trying to open it with Illustrator : although, the file is under the expected CMYK color mode, the rendered colors are not correct at all and looks "mainly black".
Basically :
I create and export a simple CMYK JPG image with Illustrator (see image)
NB : embedding the color profile or not doesn't change the result.
I create the PDF and insert the CMYK jpg image using TCPDF :
$this->pdf->Image("image.jpg", $x, $y, $w, $h, '', '', '', false, $dpi);
The result looks nice on a web browser or in Acrobat Reader : image
But the render is completely wrong when opening the PDF with Illustrator : image of bad render
I have tried the two ways suggested here :
https://github.com/tecnickcom/TCPDF/issues/192
But nothing is working.
I would like to open the PDF with Illustrator to be able to make some manual changes in some cases.
Has anyone a clue about this ?

Laravel and DOMPDF images do not load when generating PDF

I am trying to generate a PDF file using DOMPDF in a Laravel project.
The image is displayed correctly when generating my Blade template. On the other hand, the image is not displayed in the generation of the PDF file (the PDF file uses the Blade template).
The controller
$pdf = domPDF::loadView($blade, compact('cv', 'user', 'cv_certifications', 'cv_skills_nom', 'experiences', 'formations','perso', 'adresse', 'region', 'region_select', 'cv_skills', 'tcontrat'));
// Viewing the PDF file in the browser viewer
return $pdf->stream(); // display
The template
<img src="{{URL::asset($perso[0]->cvp_photo_path)}}" height="auto" width="150">
What I want
I would like the image to display in the Generated PDF file
What I get
I obit no errors in the server logs nor in laravel. The image does not load into the PDF file but loads into the rendered template correctly.
Thank you in advance for your help.

Extract data(both text and images) from Image file

I have a PDF file(Content as image in PDF), i need to extract text and images from the PDF file. I have tried PDF converter libraries in Laravel, but none is worked. So i have converted that PDF into image with Imagick, after that using TesseractOCR extracting the text from the Image(jpg format), now i need to extract images aslo. Is there any possibility extract both text and image from Image.
My PDF is like below
I have tried TesseractOCR library in laravel, now i'm able to extract the text successfully.
$file = public_path().'/images/S29A57P1-4.jpg';
echo (new TesseractOCR($file))
->lang('eng')
->run();
I want to extract both text and images from PDF or Image.

DOMPDF change the html elements places

I am working with laravael,I have an HTML view that has CSS integrated. I want to convert into a PDF. If I open the view (it doesn't mather if I open it via my Documents or by a link in my app) it works fine, everything looks ok. But if I get that file and generate a PDF with dompdf, when I open it the css for the background and the images are in their places but the texts change places and have another size.
Here is how I convert it to a PDF
$file = file_get_contents("../resources/views/panel/historial/pdfs/otros.html");
$dompdf = new DOMPDF();
$dompdf->loadHtml($file);
//$dompdf->load_html_file($html);
$dompdf->render();
$dompdf->stream("otros.pdf", array("Attachment" => 0));
return $dompdf;
enter image description here
I think that is not working in that way to except then the DOMPDF-Renderer has not the full CSS functionality.
https://github.com/dompdf/dompdf/wiki/CSSCompatibility
Here is a list of elements that are supported. So in your case i would suggest that you render a new template and make it with a different style for your PDF.
Another good solution is wkhtmltopdf which has a better support but is a command line tool which you have to call over php or if you don't need PHP then run it directly from your command line.
https://wkhtmltopdf.org/

PHP: Adobe Reader can't open PDF files created with mpdf

I'm using mpdf to create PDF files on the fly, and the files open fine in a browser but Adobe gives me an error:
Adobe Acrobat Reader DC could not open 'example-filename.pdf'
because it is either not a supported file type or because the file
has been damaged (for example, it was sent as an email attachment
and wasn't correctly decoded).
I looked at other questions about this (another mpdf + adobe error), and checked out the pdf in a text editor. I found that the first part of the file looked like this:
<!DOCTYPE html>
<head>
<title>
CapstoneDB
</title>
%PDF-1.4
%âãÏÓ
After I removed everything up to %PDF-1.4 (including the tab), the file opened fine in Adobe, which is great, except that I need to be able to get the generated pdfs to open in Adobe without manually fiddling with the code every time.
Here's my wrapper function that calls mpdf with the html and css:
include('../mpdf/mpdf.php');
function user_download_pdf($html, $css_file, $filename) {
$mpdf = new mPDF();
$stylesheet = file_get_contents($css_file);
$mpdf->WriteHTML($stylesheet,1);
$mpdf->WriteHTML($html,2);
$mpdf->Output($filename, "D");
}
I never feed mpdf a full html page, usually just an h3 and one or more tables. Maybe I need to be giving mpdf an entire html page, including <head>, <body>, etc? Is there any way to change mpdf configuration or the way I call mpdf in php that would get rid of the html junk at the beginning of the pdf file that's gunking everything up?
Place
ob_clean();
immediately before
$mpdf->Output();
Without this mpdf sometimes includes the website page HTML and not just the HTML that you want in the PDF, probably because headers have already been sent elsewhere in the code. That can mess up your PDF so Adobe won't open it.

Categories