コード例 #1
0
ファイル: PDF_Text.php プロジェクト: jacoline/webtrees
 /**
  * PDF Text renderer
  *
  * @param PDF $pdf
  *
  * @return void
  */
 function render($pdf)
 {
     // Set up the style
     if ($pdf->getCurrentStyle() != $this->styleName) {
         $pdf->setCurrentStyle($this->styleName);
     }
     $temptext = str_replace("#PAGENUM#", $pdf->PageNo(), $this->text);
     // underline «title» part of Source item
     $temptext = str_replace(array('«', '»'), array('<u>', '</u>'), $temptext);
     // Paint the text color or they might use inherited colors by the previous function
     $match = array();
     if (preg_match("/#?(..)(..)(..)/", $this->color, $match)) {
         $r = hexdec($match[1]);
         $g = hexdec($match[2]);
         $b = hexdec($match[3]);
         $pdf->SetTextColor($r, $g, $b);
     } else {
         $pdf->SetTextColor(0, 0, 0);
     }
     $temptext = spanLTRRTL($temptext, "BOTH");
     $temptext = str_replace(array('<br><span dir="rtl" >', '<br><span dir="ltr" >', '> ', ' <'), array('<span dir="rtl" ><br>', '<span dir="ltr" ><br>', '>&nbsp;', '&nbsp;<'), $temptext);
     $pdf->writeHTML($temptext, false, false, true, false, "");
     //change height - line break etc. - the form is mirror on rtl pages
     // Reset the text color to black or it will be inherited
     $pdf->SetTextColor(0, 0, 0);
 }
コード例 #2
0
ファイル: PDF_Cell.php プロジェクト: jacoline/webtrees
 /**
  * PDF Cell renderer
  *
  * @param PDF $pdf
  *
  * @return void
  */
 function render($pdf)
 {
     // Set up the text style
     if ($pdf->getCurrentStyle() != $this->styleName) {
         $pdf->setCurrentStyle($this->styleName);
     }
     $temptext = str_replace("#PAGENUM#", $pdf->PageNo(), $this->text);
     // underline «title» part of Source item
     $temptext = str_replace(array('«', '»'), array('<u>', '</u>'), $temptext);
     $match = array();
     // Indicates if the cell background must be painted (1) or transparent (0)
     if ($this->fill == 1) {
         if (!empty($this->bgcolor)) {
             // HTML color to RGB
             if (preg_match("/#?(..)(..)(..)/", $this->bgcolor, $match)) {
                 $r = hexdec($match[1]);
                 $g = hexdec($match[2]);
                 $b = hexdec($match[3]);
                 $pdf->SetFillColor($r, $g, $b);
             }
         } else {
             $this->fill = 0;
         }
     }
     // Paint the Border color if set
     if (!empty($this->bocolor)) {
         // HTML color to RGB
         if (preg_match("/#?(..)(..)(..)/", $this->bocolor, $match)) {
             $r = hexdec($match[1]);
             $g = hexdec($match[2]);
             $b = hexdec($match[3]);
             $pdf->SetDrawColor($r, $g, $b);
         }
     }
     // Paint the text color or they might use inherited colors by the previous function
     if (preg_match("/#?(..)(..)(..)/", $this->tcolor, $match)) {
         $r = hexdec($match[1]);
         $g = hexdec($match[2]);
         $b = hexdec($match[3]);
         $pdf->SetTextColor($r, $g, $b);
     } else {
         $pdf->SetTextColor(0, 0, 0);
     }
     // If current position (left)
     if ($this->left == ".") {
         $cX = $pdf->GetX();
     } else {
         $cX = $pdf->addMarginX($this->left);
     }
     // Check the width if set to page wide OR set by xml to larger then page wide
     if ($this->width == 0 || $this->width > $pdf->getRemainingWidthPDF()) {
         $this->width = $pdf->getRemainingWidthPDF();
     }
     // For current position
     if ($this->top == ".") {
         $this->top = $pdf->GetY();
     } else {
         $pdf->SetY($this->top);
     }
     // Check the last cell height and adjust the current cell height if needed
     if ($pdf->lastCellHeight > $this->height) {
         $this->height = $pdf->lastCellHeight;
     }
     // Check for pagebreak
     if (!empty($temptext)) {
         $cHT = $pdf->getNumLines($temptext, $this->width);
         $cHT = $cHT * $pdf->getCellHeightRatio() * $pdf->getCurrentStyleHeight();
         $cM = $pdf->getMargins();
         // Add padding
         if (is_array($cM['cell'])) {
             $cHT += $cM['padding_bottom'] + $cM['padding_top'];
         } else {
             $cHT += $cM['cell'] * 2;
         }
         // Add a new page if needed
         if ($pdf->checkPageBreakPDF($cHT)) {
             $this->top = $pdf->GetY();
         }
         $temptext = spanLTRRTL($temptext, "BOTH");
     }
     // HTML ready - last value is true
     $pdf->MultiCell($this->width, $this->height, $temptext, $this->border, $this->align, $this->fill, $this->newline, $cX, $this->top, $this->reseth, $this->stretch, true);
     // Reset the last cell height for the next line
     if ($this->newline >= 1) {
         $pdf->lastCellHeight = 0;
     } elseif ($pdf->lastCellHeight < $pdf->getLastH()) {
         $pdf->lastCellHeight = $pdf->getLastH();
     }
     // Set up the url link if exists ontop of the cell
     if (!empty($this->url)) {
         $pdf->Link($cX, $this->top, $this->width, $this->height, $this->url);
     }
     // Reset the border and the text color to black or they will be inherited
     $pdf->SetDrawColor(0, 0, 0);
     $pdf->SetTextColor(0, 0, 0);
 }