μετατροπη html σε pdf μεσω php Η μετατροπη html σε pdf είναι πλέον πολύ συνηθισμένη απαίτηση, ώστε να μπορεί να αποθηκευτεί, να τυπωθεί, να σταλεί κλπ.
Η γλώσσα php χρησιμοποιεί διάφορες βιβλιοθήκες για τη δημιουργια pdf online. Η δημοφιλέστερη από αυτές τις βιβλιοθήκες είναι η tcpdf. Σε αυτό το παράδειγμα θα σούμε πως χρησιμοποιούμε τη βιβλιοθήκη tcpdf για να κάνουμε μετατροπη html σε pdf, ή αλλιώς, για να φτιάξουμε ένα αρχείο pdf που παίρνει τη μορφοποίηση από html.
μετατροπη html σε pdf 1 2 3 4 5 6 7 8 9 10
<!--?php <br ?--> <!--?php //============================================================+ // Καλεί τη TC Δημιουργεί νέο PDF document $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_F >SetCreator(PDF_CREATOR); $pdf->SetAuthor('Nicola Asuni'); $pdf->SetTitle('TCPDF Example 006'); $pdf->SetSubject('TCPDF Tutorial'); $pdf->SetKeywords('TCPDF, PDF, example, test, guide'); // Ορίζουμε default header data $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 006', PD
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
// Ορίζουμε header και footer fonts $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); // Ορίζουμε default monospaced font $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); // Ορίζουμε περιθώρια $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); // set auto page breaks $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); // set image scale factor $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); // set some language-dependent strings (optional) if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { require_once(dirname(__FILE__).'/lang/eng.php'); $pdf->setLanguageArray($l); } // --------------------------------------------------------// set font $pdf->SetFont('dejavusans', '', 10); // add a page $pdf->AddPage(); // writeHTML($html, $ln=true, $fill=false, $reseth=false, $cell=false, $align='') // writeHTMLCell($w, $h, $x, $y, $html='', $border=0, $ln=0, $fill=0, $reseth=true, $al
// create some HTML content $html = '</pre> <h1>HTML Example</h1> <pre> Some special characters: < € € € & è è © > \\slash \\\\double-slash \\\\\\triple-slash< <h2>List</h2> <pre> μετατροπη html σε pdf : List example:</pre> <ol> <li><img alt="test alt attribute" src="images/logo_example.png" width="30" height="30 <li><b>μετατροπη html σε pdf : bold text</b></li> <li><i>μετατροπη html σε pdf : italic text</i></li> <li><span style="text-decoration: underline;">μετατροπη html σε pdf : underlined tex <li><b>b<i>bi<span style="text-decoration: underline;">μετατροπη html σε pdf : biu</ <li><a dir="ltr" href="http://www.tecnick.com">link to http://www.tecnick.com</a></l <li>μετατροπη html σε pdf.</li> <li>SUBLIST <ol> <li>row one <ul>
<li>sublist</li> 57 </ul> 58 </li> 59 <li>row two</li> 60 </ol> 61 </li> <li><b>T</b>E<i>S</i><span style="text-decoration: underline;">T</span> <del>line th 62 <li><span style="font-size: medium;">font + 3</span></li> 63 <li><small>small text</small> normal <small>small text</small> normal <sub>subscrip 64 </ol> 65 <dl><dt>Coffee</dt><dd>μετατροπη html σε pdf</dd><dt>Milk</dt><dd>White cold drink</dd> 66 <div style="text-align: center;">IMAGES 67 68 <img alt="test alt attribute" src="images/logo_example.png" width="100" height="100" borde border="0" /><img alt="test alt attribute" src="images/logo_example.jpg" width="100" heigh 69 <pre> 70 '; 71 72 // output the HTML content 73 $pdf->writeHTML($html, true, false, true, false, ''); 74 output some RTL HTML content 75 // $html = '</pre> 76 <div style="text-align: center;">The words “<span dir="rtl">[ לזמmazel] [ בוטtov]</span>” 77 <pre> 78 '; 79 $pdf->writeHTML($html, true, false, true, false, ''); 80 // test some inline CSS 81 $html = ' 82 83 μετατροπη html σε pdf : This is just an example of html code to demonstrate some suppor 84 <span style="font-weight: bold;">μετατροπη html σε pdf : bold text</span> 85 <span style="text-decoration: line-through;">μετατροπη html σε pdf : line-trough</span> 86 <span style="text-decoration: underline line-through;">underline and line-trough</span> <span style="color: #008040;">color</span> 87 <span style="background-color: #ff0000; color: #ffffff;">background color</span> 88 <span style="font-weight: bold;">bold</span> 89 <span style="font-size: xx-small;">xx-small</span> 90 <span style="font-size: x-small;">x-small</span> style="font-size: small;">small</span> 91 <span <span style="font-size: medium;">medium</span> 92 <span style="font-size: large;">large</span> 93 <span style="font-size: x-large;">x-large</span> 94 <span style="font-size: xx-large;">xx-large</span> 95 96 '; 97 $pdf->writeHTML($html, true, false, true, false, ''); 98 99 // reset pointer to the last page 100$pdf->lastPage(); 101 102// - - - - - - - - - - - - - - - - - - - - - - - - - - - - // Print a table
103 104// add a page 105$pdf->AddPage(); 106 // create some HTML content 107$subtable = '</pre> 108<table border="1" cellspacing="6" cellpadding="4"> 109<tbody> 110<tr> 111<td>a</td> <td>b</td> 112</tr> 113<tr> 114<td>c</td> 115<td>d</td> </tr> 116</tbody> 117</table> 118<pre> 119'; 120 = '</pre> 121$html <h2>HTML TABLE:</h2> 122<table border="1" cellspacing="3" cellpadding="4"> 123<tbody> 124<tr> 125<th>#</th> <th align="right">RIGHT align</th> 126<th align="left">LEFT align</th> 127<th>4A</th> 128</tr> 129<tr> 130<td>1</td> <td colspan="2" align="center" bgcolor="#cccccc">A1 ex<i>amp</i>le <a href="http://www.tc 131eight nine ten. 132line after br 133<small>small text</small> normal <sub>subscript</sub> normal <sup>superscript</sup> μετ 134bla bla bla bla bla bla bla bla 135<ol><li>first 136<ol> 137 <li>sublist</li> <li>sublist</li> 138 </ol> 139 </li> 140 <li>second</li> 141</ol> 142<small>μετατροπη html σε pdf : small small small small small small small small small sm 143<td>4B</td> 144</tr> <tr> 145<td>'.$subtable.'</td> 146<td align="center" bgcolor="#0000FF">A2 € € € & è è 147A2 € € € & è è</td> 148<td align="left" bgcolor="#FFFF00"><span style="color: #ff0000;">Red</span> Yellow BG</td <td>4C</td>
149</tr> 150<tr> <td>1A</td> 151<td rowspan="2" colspan="2" bgcolor="#FFFFCC">2AA 1522AB 1532AC</td> 154<td bgcolor="#FF0000">4D</td> 155</tr> <tr> 156<td>1B</td> 157<td>4E</td> 158</tr> 159<tr> <td>1C</td> 160<td>2C</td> 161<td>3C</td> 162<td>4F</td> 163</tr> 164</tbody> </table> 165<pre> 166'; 167 168// output the HTML content 169$pdf->writeHTML($html, true, false, true, false, ''); 170 // Print some HTML Cells 171 172$html = '<span>red</span> <span>green</span> <span>blue</span> 173<span>red</span> <span>green</span> <span>blue</span>'; 174 175$pdf->SetFillColor(255,255,0); 176 177$pdf->writeHTMLCell(0, 0, '', '', $html, 'LRTB', 1, 0, true, 'L', true); 178$pdf->writeHTMLCell(0, 0, '', '', $html, 'LRTB', 1, 1, true, 'C', true); $pdf->writeHTMLCell(0, 0, '', '', $html, 'LRTB', 1, 0, true, 'R', true); 179 180// reset pointer to the last page 181$pdf->lastPage(); 182 183// - - - - - - - - - - - - - - - - - - - - - - - - - - - - 184// Print a table 185 // add a page 186$pdf->AddPage(); 187 188// create some HTML content 189$html = '</pre> 190<h1>Image alignments on HTML table</h1> 191<table style="text-align: center;" border="1" cellspacing="1" cellpadding="1"> <tbody> 192<tr> 193<td><img alt="" src="images/logo_example.png" width="41" height="41" border="0" /></td> 194</tr> <tr style="text-align: left;">
195<td><img alt="" src="images/logo_example.png" width="41" height="41" align="top" border="0 196</tr> <tr style="text-align: center;"> 197<td><img alt="" src="images/logo_example.png" width="41" height="41" align="middle" border 198</tr> 199<tr style="text-align: right;"> 200<td><img alt="" src="images/logo_example.png" width="41" height="41" align="bottom" border 201</tr> <tr> 202<td style="text-align: left;"><img alt="" src="images/logo_example.png" width="41" height= 203</tr> 204<tr> 205<td style="text-align: center;"><img alt="" src="images/logo_example.png" width="41" heigh </tr> 206<tr> 207<td style="text-align: right;"><img alt="" src="images/logo_example.png" width="41" height 208</tr> 209</tbody> 210</table> <pre> 211'; 212 213// output the HTML content 214$pdf->writeHTML($html, true, false, true, false, ''); 215 216// reset pointer to the last page $pdf->lastPage(); 217 218// - - - - - - - - - - - - - - - - - - - - - - - - - - - - 219// Print all HTML colors 220 221// add a page 222$pdf->AddPage(); 223 224$textcolors = '</pre> <h1>μετατροπη html σε pdf : HTML Text Colors</h1> 225<pre> 226'; 227$bgcolors = '</pre> 228 229<hr /> 230 Background Colors</h1> 231<h1>HTML <pre> 232'; 233 234foreach(TCPDF_COLORS::$webcolor as $k => $v) { $textcolors .= '<span>'.$v.'</span> '; 235 $bgcolors .= '<span>'.$v.'</span> '; 236 } 237 238// output the HTML content 239$pdf->writeHTML($textcolors, true, false, true, false, ''); 240$pdf->writeHTML($bgcolors, true, false, true, false, '');
241// - - - - - - - - - - - - - - - - - - - - - - - - - - - - 242 243// Test word-wrap 244 // create some HTML content 245$html = '</pre> 246 247<hr /> 248 249<h1>Various tests</h1> 250<pre> 251<a href="#2">link to page 2</a> 252</pre> 253<span style="font-family: courier;"><b>μετατροπη html σε pdf : thisisaverylongword</b></ 254style="font-family: times;"><b>thisisaverylongword</b></span> 255<pre> thisisanotherverylongword</pre> 256<span style="font-family: times;">thisisaverylongword</span><span style="font-family: co helvetica;"><i>thisisanotherverylongword</i></span><span style="font-family: times;"><b> 257<pre> thisisanotherverylongword</pre> 258<span style="font-family: times;">thisisaverylongword</span><span style="font-family: co 259helvetica;"><i>thisisanotherverylongword</i></span><span style="font-family: times;"><b> 260<pre> thisisanotherverylongword</pre> style="font-family: times;">thisisaverylongword</span><span style="font-family: co 261<span helvetica;"><i>thisisanotherverylongword</i></span><span style="font-family: times;"><b> 262<pre> thisisanotherverylongword</pre> 263<span style="font-family: times;">thisisaverylongword</span><span style="font-family: co 264helvetica;"><i>thisisanotherverylongword</i></span><span style="font-family: times;"><b> 265<pre> thisisanotherverylongword</pre> <span style="font-family: times;">thisisaverylongword</span> 266<pre>'; 267 268// output the HTML content 269$pdf->writeHTML($html, true, false, true, false, ''); 270 271// Test fonts nesting 272$html1 = 'Default</pre> <span style="font-family: courier;">Courier <span style="font-family: helvetica;">μετατρ 273family: dejavusans;">dejavusans </span>Times </span>Helvetica </span>Courier </span> 274<pre>Default'; 275$html2 = '<small>small text</small> normal <small>small text</small> normal <sub>subscr 276$html3 = '</pre> style="color: #ff7f50;">The</span><span style="color: #6495ed;">quick</span><span s 277<span href="http://www.tcpdf.org">jumps</a></span><span style="color: #a0522d;">over</span><sp 278#9400d3;">lazy</span><span>dog</span> 279<pre>.'; 280 281$html = $html1.' 282'.$html2.' '.$html3.' 283'.$html3.' 284'.$html2; 285 286// output the HTML content $pdf->writeHTML($html, true, false, true, false, '');
287 288// - - - - - - - - - - - - - - - - - - - - - - - - - - - - 289// test pre tag 290 // add a page 291$pdf->AddPage(); 292 293$html = <<<EOF</pre> 294<div style="background-color: #880000; color: white;">Hello World! 295 296Hello</div> style="background-color: #336699; color: white;">int main() { 297<preprintf("HelloWorld"); 298 return 0; 299} 300 301<tt>Monospace font</tt>, normal font, <tt>monospace font</tt>, normal font. 302 303</pre> <div style="background-color: #880000; color: white;">DIV LEVEL 1 304<div style="background-color: #008800; color: white;">DIV LEVEL 2</div> 305DIV LEVEL 1</div> 306<pre> 307 308<span style="background-color: #880000; color: white;">SPAN LEVEL 1 <span style="backgro 309EOF; 310// output the HTML content 311$pdf->writeHTML($html, true, false, true, false, ''); 312 313// - - - - - - - - - - - - - - - - - - - - - - - - - - - - 314 315// test custom bullet points for list 316 317// add a page $pdf->AddPage(); 318 319$html = <<<EOF</pre> 320<h1>Test custom bullet image for list items</h1> 321<ul style="font-size: 14pt; list-style-type: img|png|4|4|images/logo_example.png;"> 322<ul style="font-size: 14pt; list-style-type: img|png|4|4|images/logo_example.png;"> <li>μετατροπη html σε pdf</li> 323 <li>test custom bullet image</li> 324 <li>test custom bullet image</li> 325 <li>test custom bullet image 326<ul>EOF;</ul> 327</li> 328</ul> </ul> 329<ul style="font-size: 14pt; list-style-type: img|png|4|4|images/logo_example.png;"> 330<ul style="font-size: 14pt; list-style-type: img|png|4|4|images/logo_example.png;"> 331<ul>// output the HTML content</ul> 332</ul> </ul>
333&nbsp; 334<ul style="font-size: 14pt; list-style-type: img|png|4|4|images/logo_example.png;"> <ul style="font-size: 14pt; list-style-type: img|png|4|4|images/logo_example.png;"> 335<ul>$pdf->writeHTML($html, true, false, true, false, '');</ul> 336</ul> 337</ul> 338<ul style="font-size: 14pt; list-style-type: img|png|4|4|images/logo_example.png;"> style="font-size: 14pt; list-style-type: img|png|4|4|images/logo_example.png;"> 339<ul <ul>// - - - - - - - - - - - - - - - - - - - - - - - - - - - - -</ul> 340</ul> 341</ul> 342<ul style="font-size: 14pt; list-style-type: img|png|4|4|images/logo_example.png;"> 343<ul style="font-size: 14pt; list-style-type: img|png|4|4|images/logo_example.png;"> <ul>// reset pointer to the last page</ul> 344</ul> 345</ul> 346&nbsp; 347<ul style="font-size: 14pt; list-style-type: img|png|4|4|images/logo_example.png;"> style="font-size: 14pt; list-style-type: img|png|4|4|images/logo_example.png;"> 348<ul <ul>$pdf->lastPage();</ul> 349</ul> 350</ul> 351<ul style="font-size: 14pt; list-style-type: img|png|4|4|images/logo_example.png;"> 352<ul style="font-size: 14pt; list-style-type: img|png|4|4|images/logo_example.png;"> <ul>// ---------------------------------------------------------</ul> 353</ul> 354</ul> 355<ul style="font-size: 14pt; list-style-type: img|png|4|4|images/logo_example.png;"> 356<ul style="font-size: 14pt; list-style-type: img|png|4|4|images/logo_example.png;"> 357<ul>//Close and output PDF document</ul> </ul> 358</ul> 359&nbsp; 360<ul style="font-size: 14pt; list-style-type: img|png|4|4|images/logo_example.png;"> 361<ul style="font-size: 14pt; list-style-type: img|png|4|4|images/logo_example.png;"> 'I');</ul> 362<ul>$pdf->Output('example_006.pdf', </ul> 363</ul> 364<ul style="font-size: 14pt; list-style-type: img|png|4|4|images/logo_example.png;"> 365<ul> 366 367 368 369 370 371 372 373 374 375 376 377 378
379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424
Ο κώδικας html αποτελεί προαπαιτούμενη γνώση για οτιδήποτε κάνετε στην κατασκευή ιστοσελίδων. Στο infopolis θα βρειτε πολλά html μαθηματα εαν θελετε να βελτιωσετε τις γνωσεις σας πανω στο html. Σε αυτό το παράδειγμα είδαμε πως μπορούμε να κάνουμε μετατροπη html σε pdf χρησιμοποιώντας τη γλώσσα php. Μια τεχνική ιδιαίτερα χρήσιμη στην κατασκευή μιας ιστοσελίδας και ελπίζουμε το παράδειγμα μας να σας φάνηκε χρήσιμο
html μαθηματα κωδικας html μετατροπη html σε pdf
Πηγή: http://www.infopolis.gr/convert-html-to-pdf/