Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PDF to JPG conversion using PHP

I'm trying to convert PDF to IMG (JPG) with help PHP.

I'm using imagick extension.

this is my code

    $fp_pdf = fopen($pdf, 'rb');      $img = new imagick(); // [0] can be used to set page number     $img->readImageFile($fp_pdf);     $img->setImageFormat( "jpg" );     $img->setImageCompression(imagick::COMPRESSION_JPEG);      $img->setImageCompressionQuality(90);       $img->setResolution(300,300);      $img->setImageUnits(imagick::RESOLUTION_PIXELSPERINCH);      $data = $img->getImageBlob();  

my source pdf file has right dimension (210x297 mm, like A4 has). And everything looks good. But my jpg has page dimension as 842x595 px, and DPI is 72.

and img file much more smaller on paper then pdf, when i had print it.

what is a proper way to make image file from pdf and make it so big as pdf (on paper)

like image 990
user1016265 Avatar asked Dec 24 '11 13:12

user1016265


People also ask

How to convert PDF to JPG in PHP?

$fp_pdf = fopen($pdf, 'rb'); $img = new imagick(); // [0] can be used to set page number $img->readImageFile($fp_pdf); $img->setImageFormat( "jpg" ); $img->setImageCompression(imagick::COMPRESSION_JPEG); $img->setImageCompressionQuality(90); $img->setResolution(300,300); $img->setImageUnits(imagick:: ...

How do I convert PDF to JPG in Linux?

Click the "Open File" option or use the "File → Open" menu to import the PDF into the software. Step 2. Next, click on "File → Export To → Image → JPEG (. jpg)".

Is online converter safe to use?

Online PDF converters are probably one of the least secure methods for creating a PDF. Using an online converter for a Word document means that your documents must pass through a third party before you get the finished product.


1 Answers

You could use imagemagick through exec() or similar, the shell arguments are much less verbose than the PHP extension.

$pdf_file = escapeshellarg( "mysafepdf.pdf" ); $jpg_file = escapeshellarg( "output.jpg" );  $result = 0; exec( "convert -density 300 {$pdf_file} {$jpg_file}", null, $result );  // at this point $result should == 0 if the conversion was successful 

It's the "-density" (which sets the DPI to read the source file as) option that specifically fixes your problem.

Also imagemagick by default uses a -quality setting of 92 for JPEG writing in most cases - so you probably don't need to explicitly declare it.

like image 113
Jonathan Williamson Avatar answered Sep 20 '22 20:09

Jonathan Williamson