คำสั่ง 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 ลองเล่นดู