我使用FPDF库生成一些订单确认,效果很好。但是现在我需要一些中文字符。我现在已经搜索了很多个小时,但没有找到可行的解决方案。是否可以使用FPDF支持中文字符,还是可以替代支持它的FPDF?
所有字符都与常规文本混合并存储在MySQL数据库中。 PDF文档仅在打印汉字时显示unicode。
答案 0 :(得分:6)
存在中文编码格式,如Big5或GBK。但是,更有可能的是,您尝试输入的文本是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);