如何在TCPDF中实现自定义字体
在TCPDF中,只有几种字体可供选择,以创建pdf文件。我想将如何在TCPDF中实现自定义字体,pdf,fonts,pdf-generation,tcpdf,Pdf,Fonts,Pdf Generation,Tcpdf,在TCPDF中,只有几种字体可供选择,以创建pdf文件。我想将Tahoma设置为我的pdf字体。如何在TCPDF中包含Tahoma?我对TCPDF或php一无所知,但我发现: 显然,您只使用字体名称,而不是文件名 一击 好的。要准备TCPDF使用的字体,必须通过命令行实用程序和PHP脚本运行该文件 $ttf2ufm-a-F myfont.ttf 然后: $php-q makefont.php myfont.ttf myfont.ufm 或 MakeFont(字符串$fontfile,字符串$
Tahoma
设置为我的pdf字体。如何在TCPDF中包含Tahoma
?我对TCPDF或php一无所知,但我发现:
显然,您只使用字体名称,而不是文件名
一击 好的。要准备TCPDF使用的字体,必须通过命令行实用程序和PHP脚本运行该文件
$ttf2ufm-a-F myfont.ttf
然后:$php-q makefont.php myfont.ttf myfont.ufm
或
MakeFont(字符串$fontfile,字符串$fmfile[,布尔$embedded[,$enc=“cp1252”[,$patch=array()]])
ttf2ufm与TCPDF一起发布在TCPDF/fonts目录中。最新的TCPDF版本使用addTTFfont()方法自动将字体转换为TCPDF格式。例如:
// convert TTF font to TCPDF format and store it on the fonts folder
$fontname = TCPDF_FONTS::addTTFfont('/path-to-font/FreeSerifItalic.ttf', 'TrueTypeUnicode', '', 96);
// use the font
$pdf->SetFont($fontname, '', 14, '', false);
有关更多信息和示例,请查看
注意:转换字体后,TCPDF不再需要TTF文件或上述调用
addTTFfont()
最新的TCPDF支持自定义字体
可以阅读有关使用TCPDF自定义字体的文档。我在网上发现了一个非常好的工具。 您只需上传.ttf文件,然后下载文件并复制到/font文件夹中
我已经尝试过的最好的方法,并且工作了100% 将您的
TTF
字体放入字体文件夹,然后使用此常量K\u路径\u字体+字体名称
$font1 = $this->pdf->addTTFfont(K_PATH_FONTS . 'arial.ttf', 'TrueTypeUnicode', '', 8);
$this->pdf->SetFont($font1, '', 15, '', false);
如果没有.ttf文件,那么使用addTTFfont()是没有意义的 关键是:如果没有ttf文件,怎么能使用addTTFfont()函数呢
例如,字体/目录(TCPDF 6.0.20)中没有cid0cs文件,只有cid0cs.php,它不是字体文件以下几行将在ur fonts文件夹中生成3个文件 1.rotisserifi56.php 2.rotisserifi56.ctg 3.烤肉卷56.rar
use this to generate the required php and other files
$fontname = $this->pdf->addTTFfont('D:/wamp/www/projectname/sites/all/modules/civicrm/packages/tcpdf/fonts/Rotis Serif Italic 56.ttf', 'TrueTypeUnicode', '', 32);
// use the font
$this->pdf->SetFont($fontname, '', 14, '', false);
现在,
使用如下字体:
$this->pdf->AddFont('rotisserifi56', '', 'rotisserifi56.php');
$this->pdf->SetFont('rotisserifi56');
--希望这对某些人有所帮助:)addTTFfont方法在TCPDF主类上不可用,所以下面的方法对我有用
// convert TTF font to TCPDF format and store it on the fonts folder
$fontname = TCPDF_FONTS::addTTFfont('pathto/arial.ttf', 'TrueTypeUnicode', '', 96);
// use the font
$pdf->SetFont($fontname, '', 14, '', false);
希望这有帮助 我发现addTTFfont方法有点挑剔(好吧,可能不是很努力),上面提到的在线工具适用于FPDF,但没有找到TCPDF所需的ctg.z文件
这一个--生成TCPDF所需的3个文件(.php、.z和.ctg.z)。转换TTF,将这三个文件上传到fonts文件夹,就可以开始了。首先从创建.php、.afm、.z,然后将这三个文件移动到包含.TTF文件的同一目录中。 然后用这个:
$pdf->AddFont(path-to/universe.ttf','',path-to/universe.php');
$pdf->SetFont(path-to/universe.ttf','',10);
我在最新版本的tcpdf中找不到addTTFFont()。 然而,我能够自己包含一个定制的TTF文件。tcpdf文件夹中有一个名为
tools
的文件夹,其中包括一个名为tcpdf\u addfont.PHP
的PHP文件
我将其符号链接到我的主目录(您可以省略此步骤),并按如下方式运行:
shell
./addfont.php-b-t TrueTypeUnicode-f32-i myfont.ttf
就是这样,它将转储类似于以下内容的内容:
```
转换TCPDF的字体:
***输出目录设置为/Users/pascalraszyk/XXX/XXX/pdf/vendor/tecnick.com/tcpdf/font/
+++确定:/Users/pascalraszyk/XXX/XXX/pdf/myfont.ttf添加为myfont
过程成功完成!
```
注意:在tools
文件夹中有更多关于各种字体类型的示例。
我使用composer签出tcpdf
只要你把字体定义文件放在tcpdf/font
文件夹中,你就可以开始了
我使用了HTML2PDF,它在引擎盖下使用tcpdf,工作起来很有魅力 尽管有所有正确的文件,我还是遇到了这个问题。我不得不将文件名更改为所有小写当无法以标准方式转换字体时,我正在寻找另一个工具,只有这一个对我有效。为什么有时可以工作,但有时返回空字体定义文件?FWIW它也可能以另一种方式发生,有趣的是,我将gillsans.ttc转换为单独的TTF(使用),但发现TCPDF_字体::addTTFfont用于半粗体、粗体等。它返回了常规人脸的各种错误。上面URL处的转换器生成了一个额外的文件(gillsans_0.z和gillsans_0.z.cpgz),并正确显示。因此,请尝试两种方法。我发现这一种:提供了更好的结果:-)目前,该工具不能很好地与来自Google fonts的拉丁文本字体配合使用。相关回答:很可能您对AddTffont()的调用可以使用更少的参数来让
AddTffont()
方法自动检测事物:$fontname=TCPDF_font::addTTFfont('/path to font/freeerifitalic.ttf')
看起来有时候tcpdf
会生成错误的.z
和.php
字体文件。我尝试使用另一个答案中的在线工具生成.z和.php文件,我的字体现在可以使用了。Hi@nicolasuni tcpdf_addfont.php是否也可以与OTF字体一起使用?我尝试了它,但它给了我以下错误消息:“---进程已完成,但有错误!”本页顶部有一个链接,上面写着:“注意:以下信息仅对”旧的TCPDF库有效。新的tc lib pdf库使用新的tc lib pdf字体库,可以动态转换字体。“嘿@Developer,看起来您正在使用CiviCRM。”。我们正在尝试在以下位置为CiviCRM启动一个新的StackExchange站点:ttp://area51.stackexchange.com/proposals/77367/civicrm --我们有很多人对此感兴趣,但我们还需要另外36名在另一个StackExchange网站上拥有200多个声誉的人来承诺,然后才能启动。你能帮我们吗?谢谢你想让我怎么帮你?谢谢,开发者!只需转到并单击中的提交按钮
// convert TTF font to TCPDF format and store it on the fonts folder
$fontname = TCPDF_FONTS::addTTFfont('pathto/arial.ttf', 'TrueTypeUnicode', '', 96);
// use the font
$pdf->SetFont($fontname, '', 14, '', false);