TCPDF pdf 中的特定字体


Specific fonts in TCPDF pdf

有人能告诉我我做错了什么吗?我需要由TCPDF生成的pdf中的Arial字体。首先,我尝试使用它:1(我从Windows字体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);

文档中的字体确实是嘟嘟唱,但没有波兰语特定的歌声(ąęłżńź(

我也试过自己准备字体:我下载了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);

我不知道我做错了什么。 :(

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

https://www.xml-convert.com/en/convert-tff-font-to-afm-pfa-fpdf-tcpdf

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

无需添加任何字体,使用内置所有UTF-8字符的Dejavu Sans字体,TCPDF已经拥有它。

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

http://www.tcpdf.org/examples/example_001.phps

$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 中的字体文件。 并再次运行此命令以重新添加它们。

嗯,你确定你的 Arial 有所有的 UTF-8 字符吗?我按照这里的说明 http://www.tcpdf.org/fonts.php它奏效了。我遇到的问题是我只能添加常规字体 - 一旦我添加了粗体或斜体,然后彼此更改,所有字符都变成了点。

所以目前我只使用我的常规字体,对于粗体,我使用"dejavusans"(感谢 Miro(。我的代码:

$fontname = $pdf->addTTFfont('/lib/tcpdf/fonts/myfont-Regular.ttf','TrueTypeUnicode','');  
$pdf->SetFont($fontname, '', 8, '', true); 
我认为

它将帮助您解决字符问题。

$pdf->SetFont('freeserif', '', 12);

以上字体系列,支持 UTF-8 字符。

我有同样的错误,我能够修复它,在 de line 之后放置下一个:

 $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);`

最好将字体转换为ctg.z/z/php文件。您可以使用 http://fonts.palettize.me 转换ttf字体,然后将字体文件夹中的未压缩结果放入tcpdf类中。然后你可以用$pdf->SetFont('jameelnoorinastaleeq', 'BI', 20(添加它;