PdfRenderer.class.php
gehe zur Dokumentation dieser Datei00001 <?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);
00086 break;
00087
00088 case 'imageelement':
00089 if ( Object::available( $child->objectId ) )
00090 {
00091 $this->pdf->ln(5);
00092
00093 $image = new File( $child->objectId );
00094
00095 $image->load();
00096 $image->write();
00097 $image->getImageSize();
00098
00099
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
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 ?>