PdfRenderer.class.php

gehe zur Dokumentation dieser Datei
00001 <?php
00002 
00014 require('textClasses/renderer/fpdf.php');
00015 require('textClasses/renderer/Pdf.class.php');
00016 
00017 class PdfRenderer
00018 {
00019      var $linkedObjectIds = array();
00020      
00025      var $footnotes       = array();
00026      
00027      var $pdf;
00028      
00029      var $url;
00030      
00031 
00038      function renderElement( $child )
00039      {
00040           global $conf;
00041           
00042                     switch( strtolower(get_class($child)) )
00043                     {
00044                          case 'tableofcontentelement':
00045                               break;
00046 
00047                          case 'rawelement':
00048                               $this->pdf->Write(5,$child->src);
00049                               
00050                               break;
00051 
00052                          case 'textelement':
00053                               
00054                               $this->pdf->Write(5,$child->text,$this->url);
00055                               $this->url = '';
00056                               break;
00057 
00058                          case 'footnoteelement':
00059                               break;
00060 
00061                          case 'codeelement':
00062                               $this->pdf->ln(10);
00063                               $this->pdf->SetFont('Courier','',12);
00064                               break;
00065 
00066                          case 'quoteelement':
00067                               $this->pdf->SetFont('Arial','I',12);
00068                               break;
00069 
00070 
00071                          case 'paragraphelement':
00072                               $this->pdf->ln(10);
00073                               break;
00074 
00075                          case 'speechelement':
00076                               $this->pdf->SetFont('Arial','I',12);
00077                               break;
00078 
00079                          case 'linebreakelement':
00080                               $this->pdf->ln(5);
00081                               break;
00082                               
00083                          case 'linkelement':
00084                               $this->url = $child->getUrl();
00085                               $this->pdf->SetTextColor(0, 0, 255); // Blau.
00086                               break;
00087 
00088                          case 'imageelement':
00089                               if   ( Object::available( $child->objectId ) )
00090                               {
00091                                    $this->pdf->ln(5);
00092                                    // Breite/oe�he des Bildes bestimmen.
00093                                    $image = new File( $child->objectId );
00094                                    
00095                                    $image->load();
00096                                    $image->write();
00097                                    $image->getImageSize();
00098                                    // $image->width;
00099                                    // $image->height;
00100                                    
00101                                    $this->pdf->Image($image->tmpfile(),$this->pdf->GetX(),$this->pdf->GetY(),0,0,$image->extension());
00102                                    $this->pdf->ln($image->height/2.5);
00103                                    $this->pdf->ln(5);
00104                                    
00105                                    unset($image);
00106                               }
00107                               break;
00108 
00109                          case 'strongelement':
00110                               $this->pdf->SetFont('Arial','B',12);
00111                               
00112                               break;
00113 
00114                          case 'emphaticelement':
00115                               $this->pdf->SetFont('Arial','I',12);
00116                               break;
00117 
00118                          case 'insertedelement':
00119                               $this->pdf->SetTextColor(0,255,0);
00120                               break;
00121 
00122                          case 'removedelement':
00123                               $this->pdf->SetTextColor(255,0,0);
00124                               break;
00125 
00126                          case 'headlineelement':
00127                               $this->pdf->ln(20-(2*$child->level));
00128                               $this->pdf->SetFontSize(20-(2*$child->level));
00129                               
00130                               break;
00131 
00132                          case 'tableelement':
00133                               $this->pdf->ln(20);
00134                               break;
00135 
00136                          case 'tablelineelement':
00137                               $this->pdf->ln(20);
00138                               break;
00139 
00140                          case 'definitionlistelement':
00141                               //$this->pdf->ln(10);
00142                               break;
00143 
00144                          case 'definitionitemelement':
00145                               $this->pdf->ln(10);
00146                               if   ( !empty($child->key) )
00147                               {
00148                                    $this->pdf->SetFont('','U');
00149                                    $this->pdf->Write(5,$child->key);
00150                                    $this->pdf->SetFont('','');                            }
00151                                    $this->pdf->Write(5,': ');
00152                               
00153                          case 'tablecellelement':
00154                               break;
00155 
00156                          case 'teletypeelement':
00157                               $this->pdf->SetFont('Courier','',12);
00158                               break;
00159                               
00160                          case 'listelement':
00161                               $this->pdf->ln(5);
00162                               break;
00163                               
00164                          case 'numberedlistelement':
00165                               $this->pdf->ln(5);
00166                               break;
00167                               
00168                          case 'listentryelement':
00169                               $this->pdf->ln(5);
00170                               $this->pdf->Write(5,'- ');
00171                               break;
00172 
00173                          default:
00174                               break;
00175                     }                   
00176 
00177                     foreach( $child->children as $c )
00178                     {
00179                          $this->renderElement( $c );
00180                     }
00181                     
00182                     $this->pdf->SetFont('Arial','',12);
00183                     $this->pdf->SetTextColor(0,0,0);
00184      }
00185 
00186 
00192      function render()
00193      {
00194           $this->pdf = new Pdf();
00195           $this->pdf->AddPage();
00196           $this->pdf->SetCreator(OR_TITLE);
00197           $this->pdf->SetFont('Arial','',12);
00198           
00199           #$this->footnotes    = array();
00200           
00201           foreach( $this->children as $child )
00202                $this->renderElement( $child );
00203                
00204           #foreach( $this->footnotes as $child )
00205           #    $this->renderElement( $child );
00206 
00207           return $this->pdf->Output('','S');
00208      }
00209 }
00210 
00211 ?>

Erzeugt am Thu May 14 00:55:49 2009 für OpenRat von  doxygen 1.5.8