Exemplo n.º 1
0
 /**
  * renders list
  */
 public function render()
 {
     $stream = $this->_rtf->getWriter();
     $number = 0;
     foreach ($this->_items as $item) {
         // item is a list
         if ($item instanceof PHPRtfLite_List_Numbering) {
             if ($this instanceof PHPRtfLite_List_Numbering) {
                 $item->setPrefix($this->_prefix . $this->getNumber($number) . $this->_separator);
                 $item->setSuffix($this->_suffix);
             }
         } else {
             $number++;
             $listCharFontIndex = $this->getListCharFontIndex();
             $listCharacter = $this->getListCharacter($number);
             $listCharDefinition = '{\\*\\pn\\pnlvlblt' . '\\pnf' . $listCharFontIndex;
             if ($this->_font) {
                 $listCharDefinition .= '\\pnfs' . $this->_font->getSize() * 2;
                 if ($color = $this->_font->getColor()) {
                     $listCharDefinition .= '\\pncf' . $this->_rtf->getColorTable()->getColorIndex($color);
                 }
             }
             $listCharDefinition .= '\\pnindent0{\\pntxtb ' . $listCharacter . '}}';
             $textIndent = $this->_listIndent + $this->_textIndent;
             $stream->write('\\nowidctlpar\\fi-' . $this->_listIndent . '\\li' . $textIndent . "\r\n");
             $stream->write($listCharDefinition);
         }
         // renders item
         $item->render();
         if (false == $item instanceof PHPRtfLite_List) {
             $stream->write('\\par\\pard' . "\r\n");
         }
     }
 }
Exemplo n.º 2
0
 /**
  * prepares rtf contents
  */
 protected function render()
 {
     $this->_writer->open();
     $defaultFontSize = 20;
     $defaultFontIndex = 0;
     if ($this->_defaultFont) {
         $defaultFontIndex = $this->getFontTable()->getFontIndex($this->_defaultFont->getFontFamily());
         $defaultFontSize = $this->_defaultFont->getSize() * 2;
     }
     $this->_writer->write('{\\rtf\\ansi\\deff' . $defaultFontIndex . '\\fs' . $defaultFontSize . "\r\n");
     $this->_writer->write($this->getFontTable()->getContent());
     $this->_writer->write($this->getColorTable()->getContent());
     $this->_writer->write($this->getInfoPart());
     $paperWidth = $this->_paperWidth;
     $paperHeight = $this->_paperHeight;
     // page properties
     if ($this->_isLandscape) {
         $this->_writer->write('\\landscape ');
         if ($paperWidth < $paperHeight) {
             $tmp = $paperHeight;
             $paperHeight = $paperWidth;
             $paperWidth = $tmp;
         }
     }
     $this->_writer->write('\\paperw' . PHPRtfLite_Unit::getUnitInTwips($paperWidth) . ' ');
     $this->_writer->write('\\paperh' . PHPRtfLite_Unit::getUnitInTwips($paperHeight) . ' ');
     // hyphenation
     if ($this->_isHyphenation) {
         $this->_writer->write('\\hyphauto1');
     }
     $this->_writer->write('\\deftab' . PHPRtfLite_Unit::getUnitInTwips($this->_defaultTabWidth) . ' ');
     $this->_writer->write('\\margl' . PHPRtfLite_Unit::getUnitInTwips($this->_marginLeft) . ' ');
     $this->_writer->write('\\margr' . PHPRtfLite_Unit::getUnitInTwips($this->_marginRight) . ' ');
     $this->_writer->write('\\margt' . PHPRtfLite_Unit::getUnitInTwips($this->_marginTop) . ' ');
     $this->_writer->write('\\margb' . PHPRtfLite_Unit::getUnitInTwips($this->_marginBottom) . ' ');
     if (null !== $this->_gutter) {
         $this->_writer->write('\\gutter' . PHPRtfLite_Unit::getUnitInTwips($this->_gutter) . ' ');
     }
     if (true == $this->_useMirrorMargins) {
         $this->_writer->write('\\margmirror ');
     }
     if (null !== $this->_viewMode) {
         $this->_writer->write('\\viewkind' . $this->_viewMode . ' ');
     }
     if (null !== $this->_zoomMode) {
         $this->_writer->write('\\viewzk' . $this->_zoomMode . ' ');
     }
     if (null !== $this->_zoomLevel) {
         $this->_writer->write('\\viewscale' . $this->_zoomLevel . ' ');
     }
     // page numbering start
     $this->_writer->write('\\pgnstart' . $this->_pageNumberStart);
     // headers and footers properties
     if ($this->_useOddEvenDifferent) {
         $this->_writer->write('\\facingp ');
     }
     if ($this->_titlepg) {
         $this->_writer->write('\\titlepg ');
     }
     // document header definition for footnotes and endnotes
     $this->_writer->write($this->getNoteDocHead()->getContent());
     // default font
     if ($this->_defaultFont) {
         $this->_writer->write($this->_defaultFont->getContent());
     }
     // headers and footers if there are no sections
     if (count($this->_sections) == 0) {
         foreach ($this->_headers as $header) {
             $header->render();
         }
         foreach ($this->_footers as $footer) {
             $footer->render();
         }
     }
     // sections
     foreach ($this->_sections as $key => $section) {
         if ($key != 0) {
             $this->_writer->write('\\sect\\sectd ');
         }
         $section->render();
     }
     $this->_writer->write('}');
     $this->_writer->close();
 }