如何在PHP FPDI库中设置编码

如何在名为FPDI的php库中设置UTF-8编码?
这是图书馆:https://www.setasign.com/products/fpdi/manual/

守则:

$pdf=new Fpdi();
$pdf->AddPage();
$pdf->setSourceFile('PdfDocument.pdf');
$tplIdx=$pdf->进口页(1);
$pdf->useTemplate($tplIdx,10,10100);
$pdf->SetFont(“Helvetica”);
$pdf->SetTextColor(255,0,0);
$pdf->SetXY(30,30);
$pdf->写(0,'Zażółcićgęśląjaźňňňňňňňňň32;
$pdf->输出();

您可以添加带有正确字母的新字体

$pdf->AddFont('DejaVu','','DejaVuSansCondensed.php');
$pdf->SetFont('DejaVu','',10',,false);

然后关于FPDI使用的FPDF库:

可能的编码有:

cp1250(中欧)
cp1251(西里尔文)
cp1252(西欧)
cp1253(希腊文)
cp1254(土耳其语)
cp1255(希伯来语)
cp1257(波罗的海)
cp1258(越南语)
cp874(泰语)
ISO-8859-1(西欧)
ISO-8859-2(中欧)
ISO-8859-4(波罗的海)
ISO-8859-5(西里尔文)
ISO-8859-7(希腊语)
ISO-8859-9(土耳其语)
ISO-8859-11(泰语)
ISO-8859-15(西欧)
ISO-8859-16(中欧)
KOI8-R(俄语)
KOI8-U(乌克兰)

发送到pdf的字符串是UTF-8格式(由mb\u detect\u encoding函数检查),需要使用cp1250进行转换

$str=iconv('UTF-8'、'cp1250'、'zazócićgęląjaź');

另一个解决方案是尝试使用:

$pdf->SetFont('freeserif','',14',,true);

更新PRO提示:

如果字体出现问题,请首先检查linux服务器上是否安装了字体

发表评论