/**
  * 
  * Drow Cell Border 
  * 
  * @param int $startLine
  * @param int $width
  * 
  * @return SirShurf_Pdf_TableSet_Cell
  */
 private function _drowCellBorder($startLine, $width)
 {
     $lineLeading = intval($this->_font->getLineHeight() / $this->_font->getUnitsPerEm());
     if ($this->getOption('border-left')) {
         $colors = explode(',', $this->getOption('border-left'));
         $this->_pdfTableSet->getCurrentObject()->setLineColor(new Zend_Pdf_Color_Rgb($colors[0], $colors[1], $colors[2]));
         // Draw the right border.
         $top = $this->_pdfTableSet->getCurrentRow() + $this->_fontSize;
         $this->_pdfTableSet->getCurrentObject()->drawLine($startLine, $top, $startLine, $this->_pdfTableSet->getCurrentRow() - $lineLeading);
     }
     if ($this->getOption('border-right')) {
         $colors = explode(',', $this->getOption('border-right'));
         $this->_pdfTableSet->getCurrentObject()->setLineColor(new Zend_Pdf_Color_Rgb($colors[0], $colors[1], $colors[2]));
         // Draw the right border.
         $top = $this->_pdfTableSet->getCurrentRow() + $this->_fontSize;
         $this->_pdfTableSet->getCurrentObject()->drawLine($startLine + $width, $top, $startLine + $width, $this->_pdfTableSet->getCurrentRow() - $lineLeading);
     }
     if ($this->getOption('border-top')) {
         $colors = explode(',', $this->getOption('border-top'));
         $this->_pdfTableSet->getCurrentObject()->setLineColor(new Zend_Pdf_Color_Rgb($colors[0], $colors[1], $colors[2]));
         // Draw the top border.
         $top = $this->_pdfTableSet->getCurrentRow() + $this->_fontSize;
         $this->_pdfTableSet->getCurrentObject()->drawLine($startLine, $top, $startLine + $width, $top);
     }
     if ($this->getOption('border-buttom')) {
         $colors = explode(',', $this->getOption('border-buttom'));
         $this->_pdfTableSet->getCurrentObject()->setLineColor(new Zend_Pdf_Color_Rgb($colors[0], $colors[1], $colors[2]));
         // Draw the buttom border.
         $this->_pdfTableSet->getCurrentObject()->drawLine($startLine, $this->_pdfTableSet->getCurrentRow() - $lineLeading, $startLine + $width, $this->_pdfTableSet->getCurrentRow() - $lineLeading);
     }
     return $this;
 }
 public function setCurrentHeight()
 {
     $this->_pdfTableSet->setHeight($this->_pdfTableSet->getCurrentRow() - $this->_intLineHeight);
     return $this;
 }
 public function render($x)
 {
     // Font Size
     if ($this->getOption('size')) {
         $this->setFont($this->_fontType, $this->getOption('size'));
     }
     // Set the font.
     if ($this->getOption('bold')) {
         $font = $this->_fontBold;
     } else {
         $font = $this->_font;
     }
     // How far to move it on the X axis for the next column.
     $offset = $this->_width;
     // Wrap the text if necessary
     $text = $this->_wrapText($this->getText(), $offset, $font, $this->_fontSize);
     $numLines = count($text);
     // Set Text Color
     if ($this->getOption('color')) {
         $colors = explode(',', $this->getOption('color'));
         $this->_pdfTableSet->getCurrentObject()->setFillColor(new Zend_Pdf_Color_Rgb($colors[0], $colors[1], $colors[2]));
     } else {
         $this->_pdfTableSet->getCurrentObject()->setFillColor(new Zend_Pdf_Color_Rgb(0, 0, 0));
     }
     // Set the font to be used.
     $this->_pdfTableSet->getCurrentObject()->setFont($font, $this->_fontSize);
     // Safe to add any borders now.
     // Border-Right
     if ($this->getOption('border-right')) {
         $colors = explode(',', $this->getOption('border-right'));
         $this->_pdfTableSet->getCurrentObject()->setLineColor(new Zend_Pdf_Color_Rgb($colors[0], $colors[1], $colors[2]));
         // Draw the right border.
         $top = $this->_pdfTableSet->getCurrentRow() + $this->_fontSize;
         $this->_pdfTableSet->getCurrentObject()->drawLine($x + $offset, $top, $x + $offset, $this->_pdfTableSet->getCurrentRow());
     }
     // Draw the text.
     // Perform the alignment calculations. Has to be done after text-wrapping.
     $align = $this->getOption('align');
     $length = $this->_getWidth($this->getText(), $font, $this->_fontSize);
     $length10 = $this->_getWidth($this->getText(), $font, 10);
     switch ($align) {
         case 'center':
             // Center Align
             $leftBound = $x + ($offset - $length) / 2;
             break;
         case 'right':
             // Right Align
             $leftBound = $x + ($offset - $length);
             break;
         default:
             // Left Align
             $leftBound = $x;
             break;
     }
     // Border @todo: make this an option later. Mostly for debuging position.
     /*$borderHeight = $this->_currentHeight;
       foreach($text as $key => $line) {
           $top = $borderHeight + $row->getHeight();
           $pdf->pages[$this->_currentPage]->drawRectangle($x, $top, $x + $offset, $borderHeight, $fillType = Zend_Pdf_Page::SHAPE_DRAW_STROKE);
           if($key < ($numLines-1)) {
               // Move the line pointer down the page.
               $borderHeight -= $row->getHeight();
           }
       }*/
     // Underline: @todo: make this an option later.
     //$pdf->pages[$this->_currentPage]->drawLine($x, $this->_currentHeight-1, $x + $offset, $this->_currentHeight-1);
     // Finally, draw the text in question.
     $tempHeight = $this->_pdfTableSet->getCurrentRow();
     foreach ($text as $key => $line) {
         $this->_pdfTableSet->getCurrentObject()->drawText($line, $leftBound + $this->getOption('indent-left'), $tempHeight, 'UTF-8');
         if ($key < $numLines - 1) {
             // Move the line pointer down the page.
             $tempHeight -= $this->getHeight();
         }
     }
     // Move the x-axis cursor, plus any padding.
     $x += $offset;
     // Restore Font Size to default.
     if ($this->getOption('size')) {
         $this->setFont();
     }
     // Move the line height pointer by the number of actual lines drawn (> 1 when line wrapping).
     $this->setLineHeight($numLines);
     return $x;
 }