pdf_open_image_file

(PHP 3 CVS only, PHP 4, PECL)

pdf_open_image_file -- Reads an image from a file

Description

int pdf_open_image_file ( resource pdfdoc, string imagetype, string filename, string stringparam, int intparam )

Open an image file. Supported types are jpeg, tiff, gif, and png. stringparam is either empty, mask, masked, or page. intparam is either 0, the image id of the applied mask, or the page. Parameters stringparam and intparam are optional before PHP 4.3.5 or with PDFlib less than 5.


add a note add a note User Contributed Notes
Max / Poland
01-Oct-2005 06:58
another example : PHP 5 & PDFLIB 6.0.2 
<?
$pdf
= pdf_new();

 if (
pdf_begin_document($pdf,"", "") == 0)
   {die(
"Error: " . pdf_get_errmsg());}

  
pdf_set_parameter($pdf, "SearchPath", "./");
  
pdf_set_parameter($pdf, "hypertextencoding", "winansi");
  
pdf_set_parameter($pdf, "imagewarning", "false");
  
pdf_set_info($pdf, "Creator", "some INformations");
  
pdf_set_info($pdf, "Author", "author");
  
pdf_set_info($pdf, "Title", "Raport");

$logo = pdf_open_image_file($pdf, "jpeg", "foto.jpg", "", 0);

pdf_begin_page($pdf, 595, 842);
pdf_place_image($pdf, $logo, 28, 324, 0.125);
pdf_close_image($pdf, $logo);
pdf_end_page($pdf);
pdf_close($pdf);

 
$buf = pdf_get_buffer($pdf);
 
$len = strlen($buf);
 
header("Content-type: application/pdf");
 
header("Content-Length: $len");
 
header("Content-Disposition: attachment; filename=raport.pdf");
  echo
$buf;

?>
ws at esc-ag dot de
07-Apr-2005 06:25
when using pdf_open_image_file() with multipage tiffs in php 5.x.x I had to use the following

$pdf = pdf_new();
pdf_open_file($pdf, "test.pdf");
$file = "mutlipg.tif";

// Important to switch off the exceptions   
pdf_set_parameter($pdf, "imagewarning", "false");

for($i=1; ; $i++)
{
   $image=@pdf_open_image_file($pdf, "tiff", $file, "page", $i);
   if($image != 0)
   {
       $w = pdf_get_value($pdf, "imagewidth", $image);
       $h = pdf_get_value($pdf, "imageheight", $image);

   // use only half of the size
       pdf_begin_page($pdf, $w/2, $h/2);
       pdf_place_image($pdf, $image, 0, 0, 0.5);
       pdf_close_image($pdf, $image);
       pdf_end_page($pdf);
   }
   else
       break;
}
// Send the pdf to the Browser
pdf_close($pdf);
$fp = fopen("test.pdf", "r");
header("Content-type: application/pdf");
fpassthru($fp);
fclose($fp);
alfred dot zingg at freesurf dot ch
16-Dec-2004 11:27
...
$logo = pdf_open_image_file($pdf, "jpeg", "logo.jpg");
pdf_place_image($pdf, $logo, 28, 324, 0.125);
pdf_close_im($pdf, $logo);
...
does not work under PHP5, use
...
$logo = pdf_open_image_file($pdf, "jpeg", "logo.jpg", "", 0);
pdf_place_image($pdf, $logo, 28, 324, 0.125);
pdf_close_im($pdf, $logo);
...
bmironov at jonview dot com
25-Jun-2003 06:54
This function deprecated since PDFlib v5.0

Use something like:
$image = @PDF_load_image ($pdf, "tiff", $filename, "")

Best regards,
Boris
j tse
06-Jun-2003 09:22
If the image file is sitting at somewhere (outside the subdirectory), an absolute path must be given instead.
darren at zoe dot co dot nz dot deleteme
17-Dec-2001 01:51
when using pdf_open_image_file() with multipage tiffs, the example in the manual won't work (i don't think the function returns -1 like it says)
you can use this instead;

   for ($page=1; ; $page++)
   {
     // our image
$image=pdf_open_image_file($pdf,"tiff",$file,"page",$page);
     // a bad image - page cannot be 0
$bad=pdf_open_image_file($pdf,"tiff",$file,"page",0);<br>
     if ($image == $bad)
   {
     // done adding pages
     break;
   }
     pdf_begin_page($pdf,$width,$height);
     pdf_place_image($pdf,$image,0,0,1);
     pdf_close_image($pdf,$image);
     pdf_end_page($pdf);
   }
bob at nijman dot de
02-Aug-2001 08:44
Try this.
(don't forget to put a "test.jpg" in the same dir)

<?php

//Create & Open PDF-Object
$pdf = pdf_new();
pdf_open_file($pdf);
pdf_set_info($pdf, "Author","Bob Nijman");
pdf_set_info($pdf, "Title","www.nijman.de");
pdf_set_info($pdf, "Creator", "bob@nijman.de");
pdf_set_info($pdf, "Subject", "pdf_open_image_file");
pdf_begin_page($pdf, 200, 200);

$pdfimage = pdf_open_image_file($pdf, "jpeg", "test.jpg");
pdf_place_image($pdf, $pdfimage, 10, 10, 0.6);

//close it up
pdf_end_page($pdf);
pdf_close($pdf);
$data = pdf_get_buffer($pdf);
header('Content-type: application/pdf');
header('Content-disposition: inline; filename=image.pdf');
header('Content-length: ' . strlen($data));
echo
$data;

?>