Php TCPDF中的特定字体

Php TCPDF中的特定字体,php,pdf,utf-8,tcpdf,Php,Pdf,Utf 8,Tcpdf,有人能告诉我我做错了什么吗?我需要Arial字体在我的pdf生成的TCPDF。 首先,我尝试使用: 1) 我从WindowsFonts caltalog获得了Arial,并将其放在TCPDF目录中。 2) 接下来,我用脚本写道: $fontname = $pdf->addTTFfont('../lib/tcpdf/arial.ttf', '', '', 32); 然后在tcpdf/fonts中出现3个文件(arial.ctg.z、arial.php和arial.z)。我认为一切正常,但如

有人能告诉我我做错了什么吗?我需要Arial字体在我的pdf生成的TCPDF。 首先,我尝试使用: 1) 我从WindowsFonts caltalog获得了Arial,并将其放在TCPDF目录中。 2) 接下来,我用脚本写道:

$fontname = $pdf->addTTFfont('../lib/tcpdf/arial.ttf', '', '', 32);
然后在tcpdf/fonts中出现3个文件(arial.ctg.z、arial.php和arial.z)。我认为一切正常,但如果在TCPDF中,我使用以下字体:

$pdf->SetFont('arial', '', 16);
文件中的字体确实是arial,但没有波兰语特有的符号(ąęł໠ź)

我也尝试过自己准备字体: 我下载了ttf2afm和makefontuni.php脚本,然后在命令行中编写了以下代码:

ttf2ufm -a arial.ttf
php -q makefontuni.php arial.ttf arial.ufm
该命令还提供了3个文件(arial.ctg.z、arial.php和arial.z),但最终的情况与以前一样

我承认所有写入pdf的数据都是UTF-8格式,TCPDF结构如下:

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'utf-8', false);

我不知道我做错了什么(

无需添加任何字体,请使用Dejavu Sans字体,该字体内置了所有UTF-8字符,并且TCPDF已经有了

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

Hm,您确定您的Arial包含所有UTF-8字符吗? 我遵照这里的指示 我遇到的问题是,我只能添加常规字体——一旦我添加了粗体或斜体,然后彼此改变,所有字符都变成了点

因此,目前我只使用常规字体,对于粗体,我使用“dejavusans”(多亏了Miro)。 我的代码:


如果要使用自定义字体,请使用此工具


当您获取生成的文件时,只需将它们移动到/fonts目录,并使用它们的相同名称,设置font name属性。

我遇到了相同的错误,我能够修复它,将下一个错误放在de行之后:

 $pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, 
        true, 'UTF-8', false);
 $fontname = $pdf->addTTFfont('tcpdf/fonts/arial.ttf', '', '', 32);
 $pdf->SetFont('arial', '', 16);`

我认为这会帮助你解决性格问题

$pdf->SetFont('freeserif', '', 12);
以上字体系列支持UTF-8字符

$fontname = TCPDF_FONTS::addTTFfont(FCPATH.'/assets/css/fonts/arial-unicode-ms.ttf');
这是我用来将自定义字体包含到TCPDF中的。您只需要该字体的.ttf文件。将其添加到服务器上您选择的文件夹中,并运行此代码一次。(我在导出时第一次运行该代码),然后您可以对此行进行注释,字体就会出现在那里

要将其添加到导出器中,您应使用以下字体将其添加为字体:

$pdf->addFont('your-font-name', '', 10, '', false);
如果您希望它是默认值:

$pdf->setFont('your-font-name', '', 10, '', false);
如果您不知道PDF中要使用的字体的实际名称:

echo $fontname; 
这将为您提供要在导出文件中使用的字体的特定名称

运行该命令后,TCPDF将在其字体文件夹中创建所需的所有文件,并且从现在开始即可使用


如果要重新添加相同的字体(已修改),则需要删除tcpdf/fonts/your font name中的字体文件。然后再次运行此命令以重新添加它们。

如果将字体转换为ctg.z/z/php文件,效果更好。 您可以使用转换ttf字体,然后将字体文件夹中未压缩的结果放入tcpdf类。
然后您可以使用$pdf->SetFont('jameelnoorenastaleq','BI',20)添加它是的,你是对的,但我需要的是Arial字体而不是dejavusans字体,这是problem@MiroMarkaravanes:它适用于特殊字符,但不显示粗体效果。我只想添加需要在library.php和.zWow中添加的两个文件。它比
TCPDF\u font::addTTFfont
效果更好。我尝试使用addTTFfont,但字体没有显示当我替换我的字体的.z和.php文件时,它工作了。我发现这一个:提供了更好的结果:-)答案中的链接不再有效。但这是可行的:fonts.snm-portal.com
echo $fontname;