example_049.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <?php
  2. //============================================================+
  3. // File name : example_049.php
  4. // Begin : 2009-04-03
  5. // Last Update : 2024-03-18
  6. //
  7. // Description : Example 049 for TCPDF class
  8. // WriteHTML with TCPDF callback functions
  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. * Creates an example PDF TEST document using TCPDF
  20. * @package com.tecnick.tcpdf
  21. * @abstract TCPDF - Example: WriteHTML with TCPDF callback functions
  22. * @author Nicola Asuni
  23. * @since 2008-03-04
  24. * @group html
  25. * @group pdf
  26. */
  27. // Include the main TCPDF library (search for installation path).
  28. require_once('tcpdf_include.php');
  29. // create new PDF document
  30. $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
  31. // set document information
  32. $pdf->setCreator(PDF_CREATOR);
  33. $pdf->setAuthor('Nicola Asuni');
  34. $pdf->setTitle('TCPDF Example 049');
  35. $pdf->setSubject('TCPDF Tutorial');
  36. $pdf->setKeywords('TCPDF, PDF, example, test, guide');
  37. // set default header data
  38. $pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 049', PDF_HEADER_STRING);
  39. // set header and footer fonts
  40. $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
  41. $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
  42. // set default monospaced font
  43. $pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED);
  44. // set margins
  45. $pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
  46. $pdf->setHeaderMargin(PDF_MARGIN_HEADER);
  47. $pdf->setFooterMargin(PDF_MARGIN_FOOTER);
  48. // set auto page breaks
  49. $pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
  50. // set image scale factor
  51. $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
  52. // set some language-dependent strings (optional)
  53. if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
  54. require_once(dirname(__FILE__).'/lang/eng.php');
  55. $pdf->setLanguageArray($l);
  56. }
  57. // ---------------------------------------------------------
  58. // set font
  59. $pdf->setFont('helvetica', '', 10);
  60. // add a page
  61. $pdf->AddPage();
  62. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  63. IMPORTANT:
  64. If you are printing user-generated content, the tcpdf tag should be considered unsafe.
  65. This tag is disabled by default by the K_TCPDF_CALLS_IN_HTML constant on TCPDF configuration file.
  66. Please use this feature only if you are in control of the HTML content and you are sure that it does not contain any harmful code.
  67. For security reasons, the content of the TCPDF tag must be prepared and encoded with the serializeTCPDFtag() method (see the example below).
  68. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  69. $html = '<h1>Test TCPDF Methods in HTML</h1>
  70. <h2 style="color:red;">IMPORTANT:</h2>
  71. <span style="color:red;">If you are using user-generated content, the tcpdf tag should be considered unsafe.<br />
  72. Please use this feature only if you are in control of the HTML content and you are sure that it does not contain any harmful code.<br />
  73. This feature is disabled by default by the <b>K_TCPDF_CALLS_IN_HTML</b> constant on TCPDF configuration file.</span>
  74. <h2>write1DBarcode method in HTML</h2>';
  75. $data = $pdf->serializeTCPDFtag('write1DBarcode', array('CODE 39', 'C39', '', '', 80, 30, 0.4, array('position'=>'S', 'border'=>true, 'padding'=>4, 'fgcolor'=>array(0,0,0), 'bgcolor'=>array(255,255,255), 'text'=>true, 'font'=>'helvetica', 'fontsize'=>8, 'stretchtext'=>4), 'N'));
  76. $html .= '<tcpdf data="'.$data.'" />';
  77. $data = $pdf->serializeTCPDFtag('write1DBarcode', array('CODE 128', 'C128', '', '', 80, 30, 0.4, array('position'=>'S', 'border'=>true, 'padding'=>4, 'fgcolor'=>array(0,0,0), 'bgcolor'=>array(255,255,255), 'text'=>true, 'font'=>'helvetica', 'fontsize'=>8, 'stretchtext'=>4), 'N'));
  78. $html .= '<tcpdf data="'.$data.'" />';
  79. $data = $pdf->serializeTCPDFtag('AddPage');
  80. $html .= '<tcpdf data="'.$data.'" /><h2>Graphic Functions</h2>';
  81. $data = $pdf->serializeTCPDFtag('SetDrawColor', array(0));
  82. $html .= '<tcpdf data="'.$data.'" />';
  83. $data = $pdf->serializeTCPDFtag('Rect', array(50, 50, 40, 10, 'DF', array(), array(0,128,255)));
  84. $html .= '<tcpdf data="'.$data.'" />';
  85. // output the HTML content
  86. $pdf->writeHTML($html, true, 0, true, 0);
  87. // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  88. // reset pointer to the last page
  89. $pdf->lastPage();
  90. // ---------------------------------------------------------
  91. //Close and output PDF document
  92. $pdf->Output('example_049.pdf', 'I');
  93. //============================================================+
  94. // END OF FILE
  95. //============================================================+