• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • PDF_load_image()

    (PECL pdflib >= 2.0.0)

    打开一个图像文件

    说明

    PDF_load_image(resource $pdfdoc,string $imagetype,string $filename,string $optlist): int

    使用指定选项,打开一个基于磁盘的或虚拟的图像文件。

    This program takes a picture from a dynamic image selector (ie: banner ad selector software, or whatever,) and inserts it into your pdf.
    You can use something like this to insert coupons on PDFs (such as register receipts, bills, receipts, etc...) just like they do at the supermarket checkout!
    <?php
    //Set up a document (PHP5 standard.)
    $p = new PDFlib();
    if ($p->begin_document("", "") == 0) {
       die("Error: " . $p->get_errmsg());
    }
    $p->set_info("Creator", "Homer");
    $p->set_info("Author", "Lisa");
    $p->set_info("Title", "Simpsons Image");
    $p->begin_page_ext(612, 792, ""); // This is letter.
    //Open the url for the image server we wish to use.
    //   (When I say "Image Server," I mean any program or 
    //   script which will render image data as output. That
    //   means that it has to output the raw data, unmodified,
    //   such that it could be accessed like this in a standard
    //   html instruction call:
    //
    //    <img src="http://site.com/getimg.php?pic=18">
    //
    //   If it adds border or other text, the data will be
    //   corrupted, and thus cause the pdf to misrender.
    if ($stream = fopen('http://site.com/getimg.php?pic=18', 'r')) {
      $MyImage= stream_get_contents($stream, -1);
      fclose($stream);
    }
    //First, create a PDF Virtual File (PVF) out of our data...
    $pvf_filename = "/pvf/image/image1.jpg";
    //and store the $MyImage data (picture data from above)
    //  in it!
    $p->create_pvf($pvf_filename,$MyImage, "");
    //Load the image from the PVF into, er, uh, ram..., and, uh...
    $image = $p->load_image("jpeg", $pvf_filename,"");
    //Put it on the screen! :)
    $p->fit_image($image, 100,500,"boxsize {100 100} position 50 fitmethod meet");
    //Be cool and clean up after yourself...
    $p->delete_pvf($pvf_filename);
    //And... Render!
    $p->end_page_ext("");
    $p->end_document("");
    $buf = $p->get_buffer();
    $len = strlen($buf);
    header("Content-type: application/pdf");
    header("Content-Length: $len");
    header("Content-Disposition: inline; filename=urlImageTest.pdf");
    print $buf;
    ?>
    
    Example use of PDF_load_image():
    <?php
    $pdf = PDF_new();
    PDF_open_file($pdf,'');
    PDF_begin_page($pdf,595,842);
    $image = PDF_load_image($pdf,"png","myimage.png","");
    PDF_place_image($pdf,$image,64,26,.24);
    ?>
    If you want something that is more free for commercial use, open source and does not require compiling, you could look at for example http://www.fpdf.org in stead of PDFlib
    I've had a difficult time trying to load images to the pdf with pdflib, and tried many examples. I came across this one and it actually works for me in IE and Firefox. I hope this can be of some help to someone.
    <?php
      $searchpath = "path/to/image/dir"; 
      
      $p = new PDFlib(); 
      $p->set_parameter("errorpolicy", "return"); // check return values of load_font() etc.
      $p->set_parameter("hypertextencoding", "winansi"); // used to prevent problems with japanese systems
      $p->set_parameter("SearchPath", $searchpath); // **set search path parameter in pdf
      if ($p->begin_document("", "") == 0) {
        die("Error: " . $p->get_errmsg());
      }
      $p->set_info("Creator", " the creator");
      $p->set_info("Author", " you ");
      $p->set_info("Title", " imageInsert ");
      $p->begin_page_ext(612, 792, ""); // declare page with standard letter size
      
      
      $certLogo = "stamp.jpg"; // your image name
      $image = $p->load_image("auto", $certLogo, ""); 
      if (!$image) {  die("Error: " . $p->get_errmsg());  } 
      
      $p->fit_image($image, 390,575, ""); //place image within page coordinates
      $p->close_image($image);      // close resource
      $p->end_page_ext("");
      $p->end_document("");
      $data = $p->get_buffer();
      $len = strlen($data);
      header("Content-type: application/pdf");
      header("Content-Length: $len");
      header("Content-Disposition: inline; filename=hello.pdf");
      print $data;
      $p = 0;
    ?>