Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在TCPDF中实现自定义字体_Pdf_Fonts_Pdf Generation_Tcpdf - Fatal编程技术网

如何在TCPDF中实现自定义字体

如何在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,字符串$

在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,字符串$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);