Php 使用支持所有语言(尤其是CJK)的TCPDF创建PDF

Php 使用支持所有语言(尤其是CJK)的TCPDF创建PDF,php,tcpdf,cjk,Php,Tcpdf,Cjk,有人能提供一个清晰简洁的示例,说明如何使用支持任何语言文本字符串的TCPDF创建PDF吗 似乎没有一种字体可以支持所有语言。我猜字体会太大 我认为正确的方法是检测字符串的语言,并动态地将字体类型设置为兼容的字体。如果是这种情况,那么检测每个字符串的语言就会变得非常复杂 如果使用“freeserif”字体,则支持大多数语言。但是,它不支持CJK字体。我尝试了许多字体(kozminproregular、cid0jp、cid0kr、cid0jp、stsongstdlight)来获得对中文、日文和韩文的

有人能提供一个清晰简洁的示例,说明如何使用支持任何语言文本字符串的TCPDF创建PDF吗

似乎没有一种字体可以支持所有语言。我猜字体会太大

我认为正确的方法是检测字符串的语言,并动态地将字体类型设置为兼容的字体。如果是这种情况,那么检测每个字符串的语言就会变得非常复杂


如果使用“freeserif”字体,则支持大多数语言。但是,它不支持CJK字体。我尝试了许多字体(kozminproregular、cid0jp、cid0kr、cid0jp、stsongstdlight)来获得对中文、日文和韩文的支持,但它们似乎都不支持这三种语言。

通过以下步骤从arial ms unicode制作我自己的字体来解决这个问题:

在临时脚本中,放置并执行此
1.将ARIALUNI.ttf的副本放在tcpdf安装下的fonts文件夹中(我已从windows\fonts文件夹中获取副本。
2.在tcpdf的examples文件夹中制作一个临时脚本,并用此行执行:
$fontname=$pdf->addTTFfont('../fonts/ARIALUNI.ttf','TrueTypeUnicode','',32);
3.在pdf生成器脚本中设置新字体:
$pdf->SetFont('arialuni','',20);

现在,pdf应该正确显示CJK字符。

希望这能帮助这么多人。

这对我来说非常好。谢谢

为了确保生成的PDF文件不会太大,请使用FontSubsetting-我生成了一个10页的PDF文件,其中只有几行中文(文凭上的姓名)

$pdf->setFontSubsetting(true);=>pdf文件稍大,925kb比755kb,没有中文名称 如果你使用
$pdf->setFontSubsetting(false);=>pdf文件大小约为17.5 MB…

我刚刚尝试了Etiennez0r的解决方案,但它对我无效。需要进行以下小修改:

$fontname = TCPDF_FONTS::addTTFfont('../fonts/ARIALUNI.TTF', 'TrueTypeUnicode', '', 96);
一、环境:

$fontname = TCPDF_FONTS::addTTFfont(FCPATH . 'TCPDF/fonts/ARIALUNI.ttf', 'TrueTypeUnicode', '', 32);
。。。。。。。 //设置字体

$pdf->SetFont('dejavusans', '', 14);
$pdf->SetFont('cid0cs', '', 14);

导出日语运行良好

完成此操作后,您的字体有多大?它支持中文、日文、韩文吗?谢谢。我记得它很大,但支持中文、日文和韩文字符(CJK)正如马特所问。你没有试过印地语unicode吗?你有什么合适的解决方案吗?我也面临着同样的问题。@Emma显然Etienzor的解决方案应该有效,但我还没有完成这些步骤。谢谢你的回答。我会试试。$pdf->setFontSubsetting(true);$pdf->SetFont('cid0kr','',9);为我在TCPDF 5.9上的韩文字符上工作