Esempio n. 1
0
<?php

$p = PDF_new();
PDF_open_file($p);
PDF_begin_page($p, 595, 842);
$im = pdf_open_jpeg($p, "php-big.jpg");
pdf_place_image($p, $im, 200, 700, 1.0);
PDF_save($p);
// Save current coordinate system settings
$nx = 50 / PDF_get_value($p, "imagewidth", $im);
$ny = 100 / PDF_get_value($p, "imageheight", $im);
PDF_scale($p, $nx, $ny);
pdf_place_image($p, $im, 200 / $nx, 600 / $ny, 1.0);
PDF_restore($p);
// Restore previous
pdf_close_image($p, $im);
PDF_end_page($p);
PDF_close($p);
$buf = PDF_get_buffer($p);
$len = strlen($buf);
Header("Content-type:application/pdf");
Header("Content-Length:{$len}");
Header("Content-Disposition:inline; filename=coords.pdf");
echo $buf;
PDF_delete($p);
 /**
  * Put a cell onto the PDF document
  *
  * Puts a cell onto the PDF document including cell border,
  * cell padding and the actual cell data.
  *
  * @param    float              $xpos        The left starting position
  * @param    float              $ypos        The top starting position
  * @param    float              $width       The width of the cell
  * @param    float              $height      The height of the cell
  * @param    object cellparam   $cellparam   Object describing the cell
  *                                           parameters
  *
  * @access   private
  */
 function drawcell($xpos, $ypos, $width, $height, $cellparam, $putdata)
 {
     // When scheduled via $cellparam->bgcolor, fill up the cell with
     // a background color
     if ($cellparam->bgcolor !== false) {
         $this->setcolor($cellparam->bgcolor);
         PDF_setlinewidth($this->pdf, 1);
         PDF_rect($this->pdf, $xpos + 0.5, $this->ypos - $height + 0.5, $width - 1, $height - 1);
         PDF_closepath_fill_stroke($this->pdf);
     }
     $horilinexpos1 = $xpos;
     $horilinexpos2 = $xpos + $width;
     // When scheduled via $cellparam->topborder{width,color},
     // draw a horizontal line on the top of the cell
     if ($cellparam->topborderwidth > 0 && $cellparam->topbordercolor !== false) {
         $borderypos = $ypos - 0.5 * $cellparam->topborderwidth;
         $this->setcolor($cellparam->topbordercolor);
         PDF_setlinewidth($this->pdf, $cellparam->topborderwidth);
         PDF_moveto($this->pdf, $horilinexpos1, $borderypos);
         PDF_lineto($this->pdf, $horilinexpos2, $borderypos);
         PDF_stroke($this->pdf);
     }
     // When scheduled via $cellparam->bottomborder{width,color},
     // draw a horizontal line on the bottom of the cell
     if ($cellparam->bottomborderwidth > 0 && $cellparam->bottombordercolor !== false) {
         $borderypos = $ypos - $height + 0.5 * $cellparam->bottomborderwidth;
         $this->setcolor($cellparam->bottombordercolor);
         PDF_setlinewidth($this->pdf, $cellparam->bottomborderwidth);
         PDF_moveto($this->pdf, $horilinexpos1, $borderypos);
         PDF_lineto($this->pdf, $horilinexpos2, $borderypos);
         PDF_stroke($this->pdf);
     }
     $vertlineypos1 = $this->ypos;
     $vertlineypos2 = $this->ypos - $height;
     // When scheduled via $cellparam->leftborder{width,color},
     // draw a vertical line on the left side of the cell
     if ($cellparam->leftborderwidth > 0 && $cellparam->leftbordercolor !== false) {
         $borderxpos = $xpos + 0.5 * $cellparam->leftborderwidth;
         $this->setcolor($cellparam->leftbordercolor);
         PDF_setlinewidth($this->pdf, $cellparam->leftborderwidth);
         PDF_moveto($this->pdf, $borderxpos, $vertlineypos1);
         PDF_lineto($this->pdf, $borderxpos, $vertlineypos2);
         PDF_stroke($this->pdf);
     }
     // When scheduled via $cellparam->rightborder{width,color},
     // draw a vertical line on the right side of the cell
     if ($cellparam->rightborderwidth > 0 && $cellparam->rightbordercolor !== false) {
         $borderxpos = $xpos + $width - 0.5 * $cellparam->rightborderwidth;
         $this->setcolor($cellparam->rightbordercolor);
         PDF_setlinewidth($this->pdf, $cellparam->rightborderwidth);
         PDF_moveto($this->pdf, $borderxpos, $vertlineypos1);
         PDF_lineto($this->pdf, $borderxpos, $vertlineypos2);
         PDF_stroke($this->pdf);
     }
     // Output the cell data
     if ($putdata) {
         $dataxpos = $xpos + $cellparam->leftborderwidth + $cellparam->leftpadding;
         $dataypos = $ypos - $cellparam->toppadding - $cellparam->topborderwidth;
         if ($this->cliptocell) {
             $datawidth = $width - ($cellparam->leftborderwidth + $cellparam->leftpadding + $cellparam->rightborderwidth + $cellparam->rightpadding);
             $dataheight = $height - ($cellparam->topborderwidth + $cellparam->toppadding + $cellparam->bottomborderwidth + $cellparam->bottompadding);
             PDF_save($this->pdf);
             PDF_rect($this->pdf, $dataxpos, $dataypos - $dataheight, $datawidth, $dataheight);
             PDF_clip($this->pdf);
         }
         $cellparam->jhpci_class->jhpci_putdata($dataxpos, $dataypos);
         if ($this->cliptocell) {
             PDF_restore($this->pdf);
         }
     }
 }