FPDF中的汉字问题

时间:2015-05-20 19:12:02

标签: php pdf unicode pdf-generation fpdf

我使用FPDF库生成一些订单确认,效果很好。但是现在我需要一些中文字符。我现在已经搜索了很多个小时,但没有找到可行的解决方案。是否可以使用FPDF支持中文字符,还是可以替代支持它的FPDF?

所有字符都与常规文本混合并存储在MySQL数据库中。 PDF文档仅在打印汉字时显示unicode。

2 个答案:

答案 0 :(得分:6)

存在中文编码格式,如Big5GBK。但是,更有可能的是,您尝试输入的文本是Unicode格式。存在tFPDF,它提供Unicode支持。我将测试印刷以下传统汉字:中国。对于那些不懂的读者来说,这意味着中国。

//  Remember to copy msjh.ttf to [path to tFPDF]/font/unifont/ directory

//  Initialize tFPDF
require('tfpdf.php');
$pdf = new tFPDF();
$pdf->AddPage();

//  Add a Unicode font like MSJH
$pdf->AddFont('MSJH','','msjh.ttf',true);
$pdf->SetFont('MSJH','',42);

//  Output Chinese string to PDF
$pdf->Text(12,42,"中國");

//  Output PDF document
$pdf->Output();

答案 1 :(得分:0)

另一个替代方案是Code200365k TTF

$pdf->AddFont('Code200365k','','Code200365k.ttf',true);

我只将它用于中文字符如下:

if (preg_match("/[\x{4e00}-\x{9fa5}]+/u", $my_value)){
    $pdf->SetFont('Code200365k','',12);
}
$pdf->Cell(130,9,$my_value,1,1,'L');
$pdf->SetFont('Arial','',11);