2016-01-23 143 views
-1

在我的PHP項目,我有,我想輸出俄文本PDF:FPDF:俄文本不輸出正確

Это предложение на русском языке. 

在我的MySQL數據庫,我有俄羅斯的數據與utf8_unicode_ci表。這個表裏面的數據俄羅斯表示有無法識別的字符,如下所示:

Я дейÑтвую Ñкорее доверительно Ð 

在我的PDF格式,沒有相應的Cyrllic被輸出,但這些無法識別的字符。

這裏來的我FPDF代碼的摘錄,請注意在其輸出端是有問題的最終變量$myRussianSentence

$pdf=new FPDF(); 
$pdf->SetAutoPageBreak(false, 0); 
$pdf->AddPage(); 
$pdf->SetTitle('My Title'); 
$pdf->SetAuthor('John Miller'); 
$pdf->SetLeftMargin(18); 
$pdf->SetFont('times', 'B', 36); 
$pdf->SetTextColor(0,0,0); 
$pdf->Cell(174, 45, 'MY PDF', "", 1, "C"); 
$pdf->Ln(5); 
$pdf->Image($strAdDeckLink, $x = 40, $y = 60, $w = 131, $h = 129, $type = '', $link = 'http://www.example.com', $align = '', $resize = false, $dpi = 96, $palign = '', $border = 0); 
$pdf->Ln(130); 
$pdf->SetFont('times', 'B', 24); 
$pdf->Cell(174, 26, 'This is some text', "", 1, "C"); 
$pdf->Ln(5); 
$pdf->SetFont('times', 'B', 32); 
$pdf->Cell(180, 26, $myRussianSentence, "", 1, "C"); 

做的變量$myRussianSentencevar_export()顯示正確Cyrllic字符的句子。但是,在PDF上它會以我的數據庫中的不可識別字符的形式輸出。

我該如何實現在我的PDF上顯示正確的俄語?

+2

了'fpdf'的文檔項目清楚地表明它不能處理unicode編碼。那麼這個工作應該如何?它不會!你應該看看'tcpdf'分支,而不是完全有能力這樣做。 – arkascha

回答

2

FPDF它說:

類可以產生超過西歐之外的其他許多語言文件:中歐,西里爾文,希臘文,波羅的海和泰國,只要你擁有具有TrueType或Type1字體所需的字符集。 UTF-8 support也可用。

tFPDF是被稱爲該版本具有UTF-8支持:

這個類是添加了UTF-8支持FPDF的修改版本。

的代碼看起來非常相似:

require('tfpdf.php'); 
$pdf = new tFPDF(); 

您需要使用Unicode字體:

要在腳本中使用Unicode字體,通過字體文件名AddFont()的第三個參數,第四個參數爲true。字體可能位於font/unifont目錄中或直接位於系統字體文件夾中(以防定義_SYSTEM_TTFONTS常量)。該軟件包附帶DejaVu字體系列。

// Add a Unicode font (uses UTF-8) 
$pdf->AddFont('DejaVu','','DejaVuSansCondensed.ttf',true); 
$pdf->SetFont('DejaVu','',14); 

有跡象表明,提供FPDF的幾個其他的擴展支持UTF-8: