คำสั่ง WriteHTML เป็นคำสั่งที่อนุญาติให้เราจัดเอกสาร PDF ได้ด้วยคำสั่ง HTML ซึ่งสามารถที่จะใส่แท็กอะไรเข้าไปก็ได้ อย่างถ้าเราใส่แท็ก a เข้าไป สิ่งที่พิมพ์ออกมาในไฟล์ PDF ก็จะเป็นลิ้งก์ หรือถ้าหากเราใส่แท็ก h1 เข้ามา มันก็จะแสดงออกมาเป็นตัวอักษรตัวหนาและใหญ่
และถ้าเราใส่ table เข้าไป มันก็จะออกมาเป็นตาราง (ถึงแม้จะขี้เหร่หน่อย) แต่ก็ถือว่าถ้า html เราไม่ได้มีอะไรซับซ้อน pdf ก็ออกมาในเกณฑ์ดี
ดูโค้ด
<?php
require_once('vendor/autoload.php');
// create new PDF document
$pdf = new TCPDF('P', PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
define('PROMPT_REGULAR', TCPDF_FONTS::addTTFfont(dirname(__FILE__) . '/fonts/Prompt-Regular.ttf', 'TrueTypeUnicode'));
define('PROMPT_BOLD', TCPDF_FONTS::addTTFfont(dirname(__FILE__) . '/fonts/Prompt-Bold.ttf', 'TrueTypeUnicode'));
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nicola Asuni');
$pdf->SetTitle('TCPDF Example 001');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
$pdf->setPrintHeader(false);
// set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// Add a page
$pdf->AddPage();
$pdf->SetFont(PROMPT_REGULAR, '', 14);
// Print text
$pdf->writeHTML('
<h1>This is a heading</h1>
<p>This is a paragraph.</p>
<p><a href="http://www.sanook.com/home/33365/" title="แมว" target="_blank" class="keyword">แมว</a>มีกลิ่นเหม็นติด<a
href="https://www.sanook.com/home/" title="บ้าน" target="_blank" class="keyword">บ้าน</a>
และอาจทำให้เจ้าของบ้านปวดหัว แม้จะเคยชินกับกลิ่นของพวกมันแต่เมื่อมีแขกมาเยี่ยมบ้านพวกเขาอาจไม่คุ้นเคย
และได้กลิ่นของพวกมันอย่างชัดเจนและนี่คือ 5 วิธีที่ช่วยกำจัดกลิ่นแมว แบบที่เราทำได้เอง<br><br><strong>ดูดฝุ่น
และซักผ้า</strong><br>การดูดฝุ่นมีประโยชน์อย่างยิ่งสำหรับขนแมวหรือ กลิ่น รวมไปถึงสะเก็ดผิวหนังต่างๆ
ดังนั้นถ้าอยากให้กลิ่นของแมวลดลงให้ดูดฝุ่นในบ้านอย่างน้อยสัปดาห์ละ 1 ครั้ง
และควรล้างถุงเก็บฝุ่นทันทีเพื่อไม่ให้มีกลิ่นแมวติด
(หากเครื่องดูดฝุ่นเป็นแบบถุงเก็บฝุ่น)<br><br>นอกจากนี้การทำความสะอาดเตียงแมว
หรือผ้าห่มของแมวเป็นประจำยังช่วยควบคุมกลิ่นได้อีกด้วย<br><br><strong>เบกกิ้งโซดา</strong>
วิธีการคือให้โรยเบกกิ้งโซดาให้ทั่วบริเวณที่ได้รับผลกระทบและทิ้งไว้ 15-30 นาที
ขึ้นอยู่กับความรุนแรงของกลิ่น
จากนั้นเช็ดหรือดูดฝุ่นออก<br><br><strong>น้ำส้มสายชู</strong><br>เนื่องจากน้ำส้มสายชูมีสภาพเป็นกรดจึงสามารถต่อต้านแบคทีเรียในปัสสาวะของแมวพร้อมบรรเทากลิ่นได้
วิธีการคือให้ผสมน้ำส้มสายชูขาว หรือแอปเปิ้ลไซเดอร์กับน้ำแล้วใส่ลงในขวดสเปรย์ในปริมาณเท่าๆ กัน
แล้วฉีดลงบนพื้นที่มีกลิ่นแมว ไม่ว่าจะเป็นพื้น หรือเฟอร์นิเจอร์จากนั้นเช็ดสารละลายออกด้วยกระดาษชำระหรือผ้าเก่า
ทำซ้ำจนกว่ากลิ่นจะหายไป<br><br><br></p>
');
// Close and output PDF document
// This method has several options, check the source code documentation for more information.
$pdf->Output('hello-tcpdf.pdf', 'I');
$pdf->Close();
ผลลัพธ์ที่ได้
คำสั่ง writeHTML ในตัวอย่างผมใส่ไปทั้ง h1, h2, a, strong, p, br และผลลัพธ์ที่ออกมาก็อย่างที่เห็น เป็นลิ้งก์ เป็นตัวหนา ขึ้นบรรทัดใหม่ ตามแบบของ html
/**
* Allows to preserve some HTML formatting (limited support).<br />
* IMPORTANT: The HTML must be well formatted - try to clean-up it using an application like HTML-Tidy before submitting.
* Supported tags are: a, b, blockquote, br, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, img, li, ol, p, pre, small, span, strong, sub, sup, table, tcpdf, td, th, thead, tr, tt, u, ul
* NOTE: all the HTML attributes must be enclosed in double-quote.
* @param string $html text to display
* @param boolean $ln if true add a new line after text (default = true)
* @param boolean $fill Indicates if the background must be painted (true) or transparent (false).
* @param boolean $reseth if true reset the last cell height (default false).
* @param boolean $cell if true add the current left (or right for RTL) padding to each Write (default false).
* @param string $align Allows to center or align the text. Possible values are:<ul><li>L : left align</li><li>C : center</li><li>R : right align</li><li>'' : empty string : left for LTR or right for RTL</li></ul>
* @public
*/
public function writeHTML($html, $ln=true, $fill=false, $reseth=false, $cell=false, $align='')
พารามิเตอร์ทั้งหมดของคำสั่ง writeHTML ลองเล่นดู
Leave a Reply