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

时间:2012-06-05 12:22:53

标签: php tcpdf

我正在寻找一种解决方案,为我的PDF文档设置多个字体,该字体是用tcpdf创建的。

我想做这样的事情:

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

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

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

希望你有一个解决方案。

6 个答案:

答案 0 :(得分:8)

您可以在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);

答案 1 :(得分:2)

转换Verdana以获取TCPDF用法:

$fontname = $pdf->addTTFfont('/path-to-font/verdana.ttf', 'TrueTypeUnicode', '', 32);
  • 确保fonts文件夹可写
  • 您是否已将路径K_PATH_FONTS设置为您的字体 config / tcpdf_config.php?
  • 阅读低谷TCPDF Fonts

答案 2 :(得分:2)

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

rotisserifi56.php,rotisserifi56.ctg,rotisserifi56.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');

答案 3 :(得分:0)

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

你可以做什么,但应该做的是:

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

你在这里基本上做的是定义2种字体。一个名为verdana,另一个名为verdana_bold。 当您指定B为粗体时,它无法找到此ttf。因为TCPDF基本上检查名为verdana_boldb.ttf的字体dir中的文件。 这不存在所以需要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

我希望这有助于其他人:)

答案 4 :(得分:-2)

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

答案 5 :(得分:-2)

包含自定义字体的步骤:

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