在我的PHP项目中,我有一个PDF,我想输出俄文文本:
Это предложение на русском языке.
在我的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");
对变量var_export()
执行$myRussianSentence
会在适当的Cyrllic字符中显示该句子。但是,在PDF上,它将作为无法识别的字符输出,如我的数据库中所示。
如何在我的PDF上显示正确的俄语?
答案 0 :(得分:3)
在FPDF上说:
该类可以生成除西欧以外的多种语言的文档:中欧,西里尔,希腊,波罗的海和泰语,前提是您拥有所需字符集的TrueType或Type1字体。 UTF-8 support也可用。
tFPDF 是指具有UTF-8支持的版本:
此类是FPDF的修改版本,可添加UTF-8支持。
代码看起来非常相似:
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支持: