如何在 TCPDF 中设置不同的字体


How to set different Fonts in TCPDF

我正在寻找一种解决方案,为使用 tcpdf 创建的 PDF 文档设置不止一种字体。

我想做这样的事情:

$pdf->SetFont('verdana_bold', 'B', 12);
$pdf->SetFont('verdana', '', 12);

我的文档需要粗体字体和常规字体。上面的示例不起作用。当我切换两行时,文本都是粗体。当我使用上面的示例时,文本只是常规的。

我想使用常规 css 样式表设置font-weight

希望您有解决方案。

您可以在 html 中使用自定义字体,如下所示:

$fontname=$pdf->addTTFfont('path/myfont.ttf', '', '', 32);
//echo $fontname;
$html='<span style="font-family:'.$fontname'.;font-weight:bold">my text in bold</span>: my normal text';
$pdf->writeHTMLCell($w=0,$h=0,$x=11,$y=201,$html,$border=0,$ln=0,$fill=false,$reseth=true,$align='L',$autopadding=false);

以下行将在您的字体文件夹中生成 3 个文件

烤肉56.php, 烤肉56.ctg, 烤肉56.rar

使用它来生成文件

$fontname = $this->pdf->addTTFfont('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');

Convert Verdana用于TCPDF使用:

$fontname = $pdf->addTTFfont('/path-to-font/verdana.ttf', 'TrueTypeUnicode', '', 32);
  • 确保字体文件夹可写
  • 您是否将路径K_PATH_FONTS常量设置为字体中的字体配置/tcpdf_config.php ?
  • 阅读 TCPDF 字体。
我知道

这个问题很老了,但我遇到了同样的问题并修复了它。

您可以做但不应该做的是:

$pdf->SetFont('verdana_bold', 'B', 12);
$pdf->SetFont('verdana', '', 12);

您在这里基本上要做的是定义 2 种字体。一个名字叫维尔达纳,一个叫verdana_bold。当您将 B 指定为粗体时,它找不到此 ttf。因为TCPDF基本上检查字体目录中的文件称为verdana_boldb.ttf。这不存在,所以它需要verdana_bold.ttf(乍一看似乎是正确的行为)。

对我来说,在我尝试在表格中使用粗体和非粗体样式并且我要么只以粗体显示整个表格或以非粗体获得整个表格(删除或添加 B 样式说明符没有区别)后,这个问题变得很明显。

你应该做什么:

添加新字体类型:

$fontname = TCPDF_FONTS::addTTFfont($fontfile, 'TrueType', '', 32);

当您想要使用该字体时:

$pdf->SetFont('verdana', '', 10, '', false);

当您希望在 HTML 单元格中以粗体显示项目时,请使用 html b 标记:

<b>myvalue</b>

如果您有 verdanab.ttf 文件,则可以在 fonts 目录中签入。

$ ls fonts/verdanab.
verdanab.ctg.z  verdanab.php    verdanab.z

我希望这对其他人有所帮助:)

我刚刚解决了我的问题。问题是,字体必须以正确的方式命名。verdana_bold错了——它一定是 verdanab。然后我只需要注册 verdana 字体和 tcpdf 自动抓取 verdanab.ttf 对于该字体的粗体版本。

包含

自定义字体的步骤:

  1. 您可以从目录中找到所需自定义字体.ttf文件 c://windows/fonts。
  2. 将该文件复制到位于 tcpdf/fonts 的字体文件夹中
  3. 使用$pdf->addTTFfont('C://wamp/www/projectname/...path to .ttf file', 'TrueTypeUnicode', '', 32);
  4. $pdf->SetFont('custom_font_name');

您的自定义字体已准备就绪,可供使用。