TCPDF UTF-8 符号未显示

2022-08-30 15:47:48

我使用的是最新的 TCPDF 版本 (5.9)。但是在编码方面存在一些奇怪的问题。我需要立陶宛语符号,如:ąčęėįšųūž。但只得到很少的。其他像?????那么我该怎么办呢?我使用默认时间字体(它附带TCPDF下载)。

任何帮助将不胜感激。


答案 1

TCPDF在utf8中非常棘手。实现所需内容的最佳方法是将字体嵌入到生成的PDF文件本身中。您可以使用TCPDF包中的freeserif字体,它包含所有utf8符号,绝对显示任何语言的任何字符,但向输出文件添加约700kb。如果文件大小无关紧要,这可能是获取所需符号的最简单方法。

您还可以制作自己的字体进行嵌入,其中包含所需的字符。这可能是最好的解决方案,保持它的通用性和小尺寸,但更复杂。

或者,您可以中继从系统中获取的核心字体,如果未找到,则替换为替换字体。这使得输出文件非常轻巧,但增加了字体子集以获得异国情调的字符的必要性。就我个人而言,我还没有成功,所以我仍然认为嵌入字体是最好的解决方案,这也恰好更通用。


答案 2

CPDF核心字体中包含一种字体 - dejavusans,它显示了所有立陶宛字符。只需添加以下内容:

$pdf->setHeaderFont(Array('dejavusans', '', 10, '', false));
$pdf->setFooterFont(Array('dejavusans', '', 8, '', false));
$pdf->SetFont('dejavusans', '', 10, '', false);

推荐