1<?php 2//============================================================+ 3// File name : example_006.php 4// Begin : 2008-03-04 5// Last Update : 2013-05-14 6// 7// Description : Example 006 for TCPDF class 8// WriteHTML and RTL support 9// 10// Author: Nicola Asuni 11// 12// (c) Copyright: 13// Nicola Asuni 14// Tecnick.com LTD 15// www.tecnick.com 16// info@tecnick.com 17//============================================================+ 18 19/** 20 * Creates an example PDF TEST document using TCPDF 21 * @package com.tecnick.tcpdf 22 * @abstract TCPDF - Example: WriteHTML and RTL support 23 * @author Nicola Asuni 24 * @since 2008-03-04 25 */ 26 27// Include the main TCPDF library (search for installation path). 28require_once('tcpdf_include.php'); 29 30// create new PDF document 31$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 32 33// set document information 34$pdf->SetCreator(PDF_CREATOR); 35$pdf->SetAuthor('Nicola Asuni'); 36$pdf->SetTitle('TCPDF Example 006'); 37$pdf->SetSubject('TCPDF Tutorial'); 38$pdf->SetKeywords('TCPDF, PDF, example, test, guide'); 39 40// set default header data 41$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 006', PDF_HEADER_STRING); 42 43// set header and footer fonts 44$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); 45$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); 46 47// set default monospaced font 48$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); 49 50// set margins 51$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); 52$pdf->SetHeaderMargin(PDF_MARGIN_HEADER); 53$pdf->SetFooterMargin(PDF_MARGIN_FOOTER); 54 55// set auto page breaks 56$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); 57 58// set image scale factor 59$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); 60 61// set some language-dependent strings (optional) 62if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { 63 require_once(dirname(__FILE__).'/lang/eng.php'); 64 $pdf->setLanguageArray($l); 65} 66 67// --------------------------------------------------------- 68 69// set font 70$pdf->SetFont('dejavusans', '', 10); 71 72// add a page 73$pdf->AddPage(); 74 75// writeHTML($html, $ln=true, $fill=false, $reseth=false, $cell=false, $align='') 76// writeHTMLCell($w, $h, $x, $y, $html='', $border=0, $ln=0, $fill=0, $reseth=true, $align='', $autopadding=true) 77 78// create some HTML content 79$html = '<h1>HTML Example</h1> 80Some special characters: < € € € & è è © > \\slash \\\\double-slash \\\\\\triple-slash 81<h2>List</h2> 82List example: 83<ol> 84 <li><img src="images/logo_example.png" alt="test alt attribute" width="30" height="30" border="0" /> test image</li> 85 <li><b>bold text</b></li> 86 <li><i>italic text</i></li> 87 <li><u>underlined text</u></li> 88 <li><b>b<i>bi<u>biu</u>bi</i>b</b></li> 89 <li><a href="http://www.tecnick.com" dir="ltr">link to http://www.tecnick.com</a></li> 90 <li>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.<br />Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.</li> 91 <li>SUBLIST 92 <ol> 93 <li>row one 94 <ul> 95 <li>sublist</li> 96 </ul> 97 </li> 98 <li>row two</li> 99 </ol> 100 </li> 101 <li><b>T</b>E<i>S</i><u>T</u> <del>line through</del></li> 102 <li><font size="+3">font + 3</font></li> 103 <li><small>small text</small> normal <small>small text</small> normal <sub>subscript</sub> normal <sup>superscript</sup> normal</li> 104</ol> 105<dl> 106 <dt>Coffee</dt> 107 <dd>Black hot drink</dd> 108 <dt>Milk</dt> 109 <dd>White cold drink</dd> 110</dl> 111<div style="text-align:center">IMAGES<br /> 112<img src="images/logo_example.png" alt="test alt attribute" width="100" height="100" border="0" /><img src="images/tcpdf_box.svg" alt="test alt attribute" width="100" height="100" border="0" /><img src="images/logo_example.jpg" alt="test alt attribute" width="100" height="100" border="0" /> 113</div>'; 114 115// output the HTML content 116$pdf->writeHTML($html, true, false, true, false, ''); 117 118 119// output some RTL HTML content 120$html = '<div style="text-align:center">The words “<span dir="rtl">מזל [mazel] טוב [tov]</span>” mean “Congratulations!”</div>'; 121$pdf->writeHTML($html, true, false, true, false, ''); 122 123// test some inline CSS 124$html = '<p>This is just an example of html code to demonstrate some supported CSS inline styles. 125<span style="font-weight: bold;">bold text</span> 126<span style="text-decoration: line-through;">line-trough</span> 127<span style="text-decoration: underline line-through;">underline and line-trough</span> 128<span style="color: rgb(0, 128, 64);">color</span> 129<span style="background-color: rgb(255, 0, 0); color: rgb(255, 255, 255);">background color</span> 130<span style="font-weight: bold;">bold</span> 131<span style="font-size: xx-small;">xx-small</span> 132<span style="font-size: x-small;">x-small</span> 133<span style="font-size: small;">small</span> 134<span style="font-size: medium;">medium</span> 135<span style="font-size: large;">large</span> 136<span style="font-size: x-large;">x-large</span> 137<span style="font-size: xx-large;">xx-large</span> 138</p>'; 139 140$pdf->writeHTML($html, true, false, true, false, ''); 141 142// reset pointer to the last page 143$pdf->lastPage(); 144 145// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 146// Print a table 147 148// add a page 149$pdf->AddPage(); 150 151// create some HTML content 152$subtable = '<table border="1" cellspacing="6" cellpadding="4"><tr><td>a</td><td>b</td></tr><tr><td>c</td><td>d</td></tr></table>'; 153 154$html = '<h2>HTML TABLE:</h2> 155<table border="1" cellspacing="3" cellpadding="4"> 156 <tr> 157 <th>#</th> 158 <th align="right">RIGHT align</th> 159 <th align="left">LEFT align</th> 160 <th>4A</th> 161 </tr> 162 <tr> 163 <td>1</td> 164 <td bgcolor="#cccccc" align="center" colspan="2">A1 ex<i>amp</i>le <a href="http://www.tcpdf.org">link</a> column span. One two tree four five six seven eight nine ten.<br />line after br<br /><small>small text</small> normal <sub>subscript</sub> normal <sup>superscript</sup> normal bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla<ol><li>first<ol><li>sublist</li><li>sublist</li></ol></li><li>second</li></ol><small color="#FF0000" bgcolor="#FFFF00">small small small small small small small small small small small small small small small small small small small small</small></td> 165 <td>4B</td> 166 </tr> 167 <tr> 168 <td>'.$subtable.'</td> 169 <td bgcolor="#0000FF" color="yellow" align="center">A2 € € € & è è<br/>A2 € € € & è è</td> 170 <td bgcolor="#FFFF00" align="left"><font color="#FF0000">Red</font> Yellow BG</td> 171 <td>4C</td> 172 </tr> 173 <tr> 174 <td>1A</td> 175 <td rowspan="2" colspan="2" bgcolor="#FFFFCC">2AA<br />2AB<br />2AC</td> 176 <td bgcolor="#FF0000">4D</td> 177 </tr> 178 <tr> 179 <td>1B</td> 180 <td>4E</td> 181 </tr> 182 <tr> 183 <td>1C</td> 184 <td>2C</td> 185 <td>3C</td> 186 <td>4F</td> 187 </tr> 188</table>'; 189 190// output the HTML content 191$pdf->writeHTML($html, true, false, true, false, ''); 192 193// Print some HTML Cells 194 195$html = '<span color="red">red</span> <span color="green">green</span> <span color="blue">blue</span><br /><span color="red">red</span> <span color="green">green</span> <span color="blue">blue</span>'; 196 197$pdf->SetFillColor(255,255,0); 198 199$pdf->writeHTMLCell(0, 0, '', '', $html, 'LRTB', 1, 0, true, 'L', true); 200$pdf->writeHTMLCell(0, 0, '', '', $html, 'LRTB', 1, 1, true, 'C', true); 201$pdf->writeHTMLCell(0, 0, '', '', $html, 'LRTB', 1, 0, true, 'R', true); 202 203// reset pointer to the last page 204$pdf->lastPage(); 205 206// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 207// Print a table 208 209// add a page 210$pdf->AddPage(); 211 212// create some HTML content 213$html = '<h1>Image alignments on HTML table</h1> 214<table cellpadding="1" cellspacing="1" border="1" style="text-align:center;"> 215<tr><td><img src="images/logo_example.png" border="0" height="41" width="41" /></td></tr> 216<tr style="text-align:left;"><td><img src="images/logo_example.png" border="0" height="41" width="41" align="top" /></td></tr> 217<tr style="text-align:center;"><td><img src="images/logo_example.png" border="0" height="41" width="41" align="middle" /></td></tr> 218<tr style="text-align:right;"><td><img src="images/logo_example.png" border="0" height="41" width="41" align="bottom" /></td></tr> 219<tr><td style="text-align:left;"><img src="images/logo_example.png" border="0" height="41" width="41" align="top" /></td></tr> 220<tr><td style="text-align:center;"><img src="images/logo_example.png" border="0" height="41" width="41" align="middle" /></td></tr> 221<tr><td style="text-align:right;"><img src="images/logo_example.png" border="0" height="41" width="41" align="bottom" /></td></tr> 222</table>'; 223 224// output the HTML content 225$pdf->writeHTML($html, true, false, true, false, ''); 226 227// reset pointer to the last page 228$pdf->lastPage(); 229 230// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 231// Print all HTML colors 232 233// add a page 234$pdf->AddPage(); 235 236$textcolors = '<h1>HTML Text Colors</h1>'; 237$bgcolors = '<hr /><h1>HTML Background Colors</h1>'; 238 239foreach(TCPDF_COLORS::$webcolor as $k => $v) { 240 $textcolors .= '<span color="#'.$v.'">'.$v.'</span> '; 241 $bgcolors .= '<span bgcolor="#'.$v.'" color="#333333">'.$v.'</span> '; 242} 243 244// output the HTML content 245$pdf->writeHTML($textcolors, true, false, true, false, ''); 246$pdf->writeHTML($bgcolors, true, false, true, false, ''); 247 248// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 249 250// Test word-wrap 251 252// create some HTML content 253$html = '<hr /> 254<h1>Various tests</h1> 255<a href="#2">link to page 2</a><br /> 256<font face="courier"><b>thisisaverylongword</b></font> <font face="helvetica"><i>thisisanotherverylongword</i></font> <font face="times"><b>thisisaverylongword</b></font> thisisanotherverylongword <font face="times">thisisaverylongword</font> <font face="courier"><b>thisisaverylongword</b></font> <font face="helvetica"><i>thisisanotherverylongword</i></font> <font face="times"><b>thisisaverylongword</b></font> thisisanotherverylongword <font face="times">thisisaverylongword</font> <font face="courier"><b>thisisaverylongword</b></font> <font face="helvetica"><i>thisisanotherverylongword</i></font> <font face="times"><b>thisisaverylongword</b></font> thisisanotherverylongword <font face="times">thisisaverylongword</font> <font face="courier"><b>thisisaverylongword</b></font> <font face="helvetica"><i>thisisanotherverylongword</i></font> <font face="times"><b>thisisaverylongword</b></font> thisisanotherverylongword <font face="times">thisisaverylongword</font> <font face="courier"><b>thisisaverylongword</b></font> <font face="helvetica"><i>thisisanotherverylongword</i></font> <font face="times"><b>thisisaverylongword</b></font> thisisanotherverylongword <font face="times">thisisaverylongword</font>'; 257 258// output the HTML content 259$pdf->writeHTML($html, true, false, true, false, ''); 260 261// Test fonts nesting 262$html1 = 'Default <font face="courier">Courier <font face="helvetica">Helvetica <font face="times">Times <font face="dejavusans">dejavusans </font>Times </font>Helvetica </font>Courier </font>Default'; 263$html2 = '<small>small text</small> normal <small>small text</small> normal <sub>subscript</sub> normal <sup>superscript</sup> normal'; 264$html3 = '<font size="10" color="#ff7f50">The</font> <font size="10" color="#6495ed">quick</font> <font size="14" color="#dc143c">brown</font> <font size="18" color="#008000">fox</font> <font size="22"><a href="http://www.tcpdf.org">jumps</a></font> <font size="22" color="#a0522d">over</font> <font size="18" color="#da70d6">the</font> <font size="14" color="#9400d3">lazy</font> <font size="10" color="#4169el">dog</font>.'; 265 266$html = $html1.'<br />'.$html2.'<br />'.$html3.'<br />'.$html3.'<br />'.$html2; 267 268// output the HTML content 269$pdf->writeHTML($html, true, false, true, false, ''); 270 271// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 272// test pre tag 273 274// add a page 275$pdf->AddPage(); 276 277$html = <<<EOF 278<div style="background-color:#880000;color:white;"> 279Hello World!<br /> 280Hello 281</div> 282<pre style="background-color:#336699;color:white;"> 283int main() { 284 printf("HelloWorld"); 285 return 0; 286} 287</pre> 288<tt>Monospace font</tt>, normal font, <tt>monospace font</tt>, normal font. 289<br /> 290<div style="background-color:#880000;color:white;">DIV LEVEL 1<div style="background-color:#008800;color:white;">DIV LEVEL 2</div>DIV LEVEL 1</div> 291<br /> 292<span style="background-color:#880000;color:white;">SPAN LEVEL 1 <span style="background-color:#008800;color:white;">SPAN LEVEL 2</span> SPAN LEVEL 1</span> 293EOF; 294 295// output the HTML content 296$pdf->writeHTML($html, true, false, true, false, ''); 297 298// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 299 300// test custom bullet points for list 301 302// add a page 303$pdf->AddPage(); 304 305$html = <<<EOF 306<h1>Test custom bullet image for list items</h1> 307<ul style="font-size:14pt;list-style-type:img|png|4|4|images/logo_example.png"> 308 <li>test custom bullet image</li> 309 <li>test custom bullet image</li> 310 <li>test custom bullet image</li> 311 <li>test custom bullet image</li> 312<ul> 313EOF; 314 315// output the HTML content 316$pdf->writeHTML($html, true, false, true, false, ''); 317 318// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 319 320// reset pointer to the last page 321$pdf->lastPage(); 322 323// --------------------------------------------------------- 324 325//Close and output PDF document 326$pdf->Output('example_006.pdf', 'I'); 327 328//============================================================+ 329// END OF FILE 330//============================================================+ 331