D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
shubmkcj
/
urbane.createerp.com
/
mpdf
/
examples
/
Filename :
example59_new_mPDF_v5-6_features.php
back
Copy
<?php ini_set("memory_limit","64M"); include("../mpdf.php"); $mpdf=new mPDF(''); //============================================================== $html = ' <style> .gradient { border:0.1mm solid #220044; background-color: #f0f2ff; background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; box-shadow: 0.3em 0.3em #888888; } .rounded { border:0.1mm solid #220044; background-color: #f0f2ff; background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; border-radius: 2mm; background-clip: border-box; } h4 { font-weight: bold; margin-top: 1em; margin-bottom: 0.3em; margin-top: 0; } div.text { padding:0.8em; margin-bottom: 0.7em; } p { margin: 0.25em 0; } .code { font-family: monospace; font-size: 9pt; background-color: #d5d5d5; margin: 1em 1cm; padding: 0 0.3cm; border:0.2mm solid #000088; box-shadow: 0.3em 0.3em #888888; } table { border:1px solid #000000; font-family: sans-serif; font-size: 10pt; background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; } td, th { border:1px solid #000000; text-align: left; font-weight: normal; } .shadowtitle { height: 8mm; background-color: #EEDDFF; background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; padding: 0.8em; padding-left: 3em; font-family:sans; font-size: 26pt; font-weight: bold; border: 0.2mm solid white; border-radius: 0.2em; box-shadow: 0 0 2em 0.5em rgba(0,0,255,0.9); color: #AAAACC; text-shadow: 0.03em 0.03em #666, 0.05em 0.05em rgba(127,127,127,0.5), -0.015em -0.015em white; } h3 { margin: 3em 0 2em -15mm; background-color: #EEDDFF; background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; padding: 0.5em; padding-left: 3em; width: 50%; font-family:sans; font-size: 16pt; font-weight: bold; border-left: none; border-radius: 0 2em 2em 0; box-shadow: 0 0 2em 0.5em rgba(255,0,0,1); text-shadow: 0.05em 0.04em rgba(127,127,127,0.5); } .css { font-family: arial; font-style: italic; color: #000088; } table.pop { border-collapse: collapse; } table.pop td { font-family: arial; font-size: 10px; border: 1px solid #888888; } meter.pop { margin: 3px; } fieldset { border: 1px solid #000000; border-radius: 5px; padding: 10px; } div.folder { background: url(data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub//ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcppV0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7) no-repeat 4px center; padding: 5px 0 5px 25px; border: 1px solid #000000; } </style> <body> <div class="shadowtitle">New Features in mPDF v5.6</div> <h3>HTML5 tags</h3> <div class="gradient text"> <p>New tags introduced in HTML5 now have basic support in mPDF, and will thus support CSS style references.</p> <p>The following are treated as block elements similar to <div>:</p> <p class="code"><article> <aside> <details> <figure> <figcaption> <footer> <header> <hgroup> <nav> <section> <summary> </p> <p>The following are treated as in-line elements:</p> <p class="code"><time> <mark></p> <p>Mark is set by default to highlight in yellow in config.php using $defaultCSS e.g. <mark>mark</mark></p> <p>Progress and meter are discussed below:</p> </div> <h3><progress></h3> <div class="gradient text"> <p>Progress: accepts the attributes value and max. A progress element without a value is called an indeterminate progress bar. Text between the opening and closing tags is not displayed.</p> <p>CSS styles properties can be applied: display, visibility, margin, padding, border, vertical-align, width, height and opacity. HTML attributes width and height are supported, although not officially part of the spec.</p> <p>Example:</p> <p class="code"><progress value="5" max="10">50%</progress></p> <ul class="compact"> <li> <label>Indeterminate</label> <progress max="100"></progress> </li> <li> <label>Progress: 0%</label> <progress max="10" value="0"></progress> </li> <li> <label>Progress: 100%</label> <progress max="3254" value="3254"></progress> </li> <li> <label>Progress: 57%</label> <progress max="0.7" value="0.4"></progress> </li> </ul> </div> <h3><meter></h3> <div class="gradient text"> <p>Meter: accepts the attributes min, max, value, optimum, low, and high. Text between the opening and closing tags is not displayed.</p> <p>CSS styles properties can be applied: display, visibility, margin, padding, border, vertical-align, width, height and opacity. HTML attributes width and height are supported, although not officially part of the spec.</p> <p>Example:</p> <p class="code"><meter value="5" max="10" min="1" low="2" high="8" optimum="5.6">5</meter></p> <ul class="compact"> <li> <label>Meter: full</label> <meter value="1"></meter> </li> <li> <label>Preferred usage</label> <meter min="1024" max="10240" low="2048" high="8192" value="1824" optimum="1024"></meter> </li> <li> <label>Too much traffic</label> <meter min="1024" max="10240" low="2048" high="8192" value="6216" optimum="1024"></meter> </li> <li> <label>Much too much traffic</label> <meter min="1024" max="10240" low="2048" high="8192" value="9216" optimum="1024"></meter> </li> </ul> </div> <div class="gradient text"> <h4>Custom appearances for <meter> and <progress></h4> <p>Meter (and to a lesser extent progress) can be used with custom appearances e.g. by using optimum to display the average, and low/high to indicate 90th centiles</p> <p>Custom appearances can be written by editing the script in classes/meter.php - Use a custom attribute of type="anyname" which is passed to the class as a variable e.g.</p> <p class="code"><meter type="2" value="612.7" optimum="580.4" min="517.0 " max="642.7" low="542" high="600">612.7</meter></p> </div> <table class="pop"> <tbody> <tr> <td><p><b>Domain</b></p></td> <td><p><b>Indicator</b></p></td> <td><p><b>LHB</b></p><p><b>number</b></p></td> <td><p><b>LHB</b></p><p><b>Indicator</b></p> <p><b>value</b></p> </td> <td><p><b>Wales</b></p><p><b>average</b></p> </td> <td><p><b>Wales range</b></p></td> <td><p><b>Comparison</b></p></td> </tr> <tr> <td rowspan="4"><p><b>Deaths</b></p></td> <td><p>Death Rates per 100,000 population</p></td> <td><p>3046</p></td> <td><p><b>612.7</b><b></b></p></td> <td><p>580.4</p></td> <td><p>517.0 - 642.7</p></td> <td><meter class="pop" type="2" value="612.7" optimum="580.4" min="517.0 " max="642.7" low="542" high="600">612.7</meter></td> </tr> <tr> <td><p>Death Rates per 100,000 from cancer</p></td> <td><p>789</p></td> <td><p><b>178.2</b><b></b></p></td> <td><p>172.7</p></td> <td><p>159.5 - 182.2</p></td> <td><meter class="pop" type="2" value="178.2" optimum="172.7" min="159.5 " max="182.2" low="162" high="180">178.2</meter></td> </tr> <tr> <td><p>Death Rates per 100,000 from respiratory disease</p></td> <td><p>505</p></td> <td><p><b>60.5</b><b></b></p></td> <td><p>72.11</p></td> <td><p>54.41 - 95.5</p></td> <td><meter class="pop" type="2" value="60.5" optimum="72.11" min="54.41 " max="95.5" low="68" high="80">60.5</meter></td> </tr> <tr> <td><p>Death Rates per 100,000 from cardiovascular disease</p></td> <td><p>913</p></td> <td><p><b>178.2</b><b></b></p></td> <td><p>165.0</p></td> <td><p>151.8 - 179.9</p></td> <td><meter class="pop" type="2" value="160.2" optimum="165" min="151.8 " max="179.9" low="158" high="170">160.2</meter></td> </tr> </tbody> </table> <h3>Fieldset and Legend</h3> <form> <fieldset> <legend>Fieldset and legend</legend> <p>Support for fieldset and legend was introduced in mPDF v5.5. Consider it experimental!</p> <label for="name">Username:</label> <input type="text" name="name" id="name" /> <br /> <label for="mail">E-mail:</label> <input type="text" name="mail" id="mail" /> </fieldset> </form> <h3>CSS styles</h3> <div class="gradient text"> <h4></h4> <p><span class="css">min-height</span>, <span class="css">min-width</span>, <span class="css">max-height</span> and <span class="css">max-width</span> are now supported in CSS style sheets for <img> (only).</p> <p><span class="css">background: url(data:image/gif;base64,...)</span> is now supported in CSS style sheets (gif, png and jpeg).</p> </div> <div class="folder">This <div> has the folder icon set as an embedded image in the CSS</div> <p class="code">div.folder { background: url(data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub//ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcppV0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7) no-repeat 4px center; padding: 5px 0 5px 25px; border: 1px solid #000000; } </p> <h3>Arabic text</h3> <br /><br /> <div class="gradient text"> <p>The script handling Arabic text (RTL) was rewritten in mPDF 5.5 with improved support for Pashto/Sindhi/Urdu/Kurdish, especially for joining characters and added new presentation forms.</p> <p>Some characters in Pashto/Sindhi/Urdu/Kurdish do not have Unicode values for the final/initial/medial forms of the characters. However, some fonts include glyphs for these characters "un-mapped" to Unicode (including XB Zar and XB Riyaz, which are bundled with mPDF).</p> <p>By editing config_fonts.php and adding:</p> <p class="code"> \'unAGlyphs\' => true, </p> <p>to appropriate fonts, this will force mPDF to use unmapped glyphs. It requires the font file to include a Format 2.0 POST table which references the glyphs by name as e.g. uni067C.med or uni067C.medi</p> <p>XB Riyaz, XB Zar, Arabic Typesetting (MS), Arial (MS) all contain this table. NB If you want to know if a font file is suitable, you can open a .ttf file in a text editor and search for "uni067C.med" - if it exists, it may work!</p> <p>Using "unAGlyphs" forces subsetting of fonts, and will not work with SIP/SMP fonts (using characters beyond the Unicode BMP Plane).</p> <p>mPDF maps these characters to part of the Private Use Area allocated by Unicode U+F500-F7FF. This could interfere with correct use if the font already utilises these codes (unlikely).</p> </div> <pagebreak /> <p>Using Arial MS font:</p> '; //============================================================== // Test for all Arabic characters which may need joining //============================================================== $mpdf->cacheTables = true; $html .=' <style> .script-arabic { font-family: arial; font-size: 22pt; direction: rtl; padding: 0.1em 0.5em; text-align: center; } .joined { color: #888888; } </style> <div dir="ltr"> '; $ranges = array(0=>array(0x0621, 0x063a), 1=>array(0x0640, 0x064a), 2=>array(0x0671, 0x0672), 3=>array(0x0674, 0x06d3)); foreach($ranges AS $r) { $html .= '<table border="1" style="border-collapse: collapse">'; $html .= '<thead><tr>'; $html .= '<td></td>'; $html .= '<td style="text-align:center; padding: 0 0.5em;">Isolated</td>'; $html .= '<td></td>'; $html .= '<td style="text-align:center; padding: 0 0.5em;">Final</td>'; $html .= '<td style="text-align:center; padding: 0 0.5em;">Medial</td>'; $html .= '<td style="text-align:center; padding: 0 0.5em;">Initial</td>'; $html .= '<td></td>'; $html .= '</tr></thead><tbody>'; for($n=$r[0];$n<=$r[1];$n++) { $html .= '<tr>'; $html .= '<td>U+0'.strtoupper(dechex($n)) .'</td>'; $html .= '<td class="script-arabic">�'.dechex($n) .';</td>'; $html .= '<td class="script-arabic joined">ئ�'.dechex($n) .';</td>'; $html .= '<td class="script-arabic">ـ�'.dechex($n) .';</td>'; $html .= '<td class="script-arabic">ـ�'.dechex($n) .';ـ</td>'; $html .= '<td class="script-arabic">�'.dechex($n) .';ـ</td>'; $html .= '<td class="script-arabic joined">�'.dechex($n) .';ه</td>'; $html .= '</tr>'; } $html .='</tbody></table>'; $html .='<br />'; } $html .='</div>'; //============================================================== $html .=' <br /> '; //============================================================== if ($_REQUEST['html']) { echo $html; exit; } if ($_REQUEST['source']) { $file = __FILE__; header("Content-Type: text/plain"); header("Content-Length: ". filesize($file)); header("Content-Disposition: attachment; filename='".$file."'"); readfile($file); exit; } //============================================================== $mpdf->WriteHTML($html); // OUTPUT $mpdf->Output(); exit; //============================================================== //============================================================== //============================================================== //============================================================== ?>