2013-07-16 113 views
2

我使用TCPDF從HTML代碼生成PDF,但無法正確呈現某些HTML特殊字符。這裏是我的準系統代碼:如何在TCPDF中顯示HTML Ohm特殊字符?

require_once('../libraries/tcpdf_6_0_020/tcpdf/tcpdf.php'); 

// create new PDF document 
$pdf = new TCPDF('P', PDF_UNIT, 'LETTER', true, 'UTF-8', false); 

// add a page 
$pdf->AddPage(); 

$output = 'this is a special character: Ω'; 

//echo $output;die(); 

$pdf->writeHTML($output, true, false, false, false, ''); 

//Close and output PDF document 
$pdf->Output('generated pdf.pdf', 'I'); 

上面的輸出是:

this is a special character: ? 

有許多關於這同一主題上的問題在這裏,其中大部分說的構造函數更改爲以下:

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false); 

我試過了,但隨後的輸出變爲:

this is a special character: Ω 

我該怎麼做才能使HTML特殊字符呈現正確?

+2

使用'$ PDF - > setfont程序(......)'設置一個Unicode字體。 –

+0

@JoopEggen我添加了'$ pdf-> SetFont('times','BI',20,'','false');'在TCPDF構造函數下面,但它仍然顯示問號。 – Nate

回答

4

嘗試這個

require_once('tcpdf/tcpdf.php'); 

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 

$pdf->SetFont('dejavusans', '', 10); 

$pdf->AddPage(); 

$html = "this is a special character: Ω"; 

$pdf->writeHTML($html, true, false, true, false, ''); 

$pdf->lastPage(); 

$pdf->Output('test.pdf', 'I'); 
+0

我嘗試了'$ output = $ pdf-> unhtmlentities('這是一個特殊字符:Ω');',但不幸的是它仍然輸出'?'。 – Nate

+0

我從此頁面獲得了歐元字符代碼(8364):http://www.tcpdf.org/examples/example_006.phps,並且在我的示例中呈現正確。所以就好像TCPDF不知道如何渲染某些符號,如歐姆符號? – Nate

+0

@Nate我編輯了我的答案,這段代碼對我很好用 – Sbml