TCPDF SetFont和writeHTML

时间:2014-07-22 10:26:17

标签: tcpdf

我遇到TCPDF问题。使用writeHTML时,我的自定义字体(以及任何其他包含的字体)不起作用。

$tcpdf = tcpdf_get_instance();
$fontname = $tcpdf->addTTFfont('/antiquariat/sites/default/files/fonts/tstar-regular-webfont.ttf', 'TrueTypeUnicode', '', 32);
$tcpdf->SetFont('tstarwebfont', '', 16);
$tcpdf->writeHTML($html);

字体不会改变,即使我使用" helvetica"或任何其他字体。 第二件事是,自定义字体根本没有生成,但首先我很难使用,甚至没有使用任何其他字体。

5 个答案:

答案 0 :(得分:3)

这就是我使用TCPDF的方式:

  1. 首先,使用此website生成.PHP文件和.z文件。
  2. 将这两个文件放在文件夹... / tcpdf / fonts。
  3. 您将使用PHP名称文件一。
  4. 将您的字体添加到pdf对象:

     $pdf->AddFont('yourfont1');        //custom font
     $pdf->AddFont('yourfont2');        //custom font
    
  5. 现在,在writeHTML中使用它:

    $html = '
            <style>
            h1 {
                font-family: yourfont1;
                font-size: 40pt;
                text-align:center;
            }
    
            </style>
    
    
        <h1>Testing FONT</h1>
        ';
    
    $pdf->writeHTML($html, true, false, true, false, '');
    

答案 1 :(得分:0)

由于没有人回答我并且我没有按照需要得到它,所以我切换到目前为止工作正常的DOMPDF!这不是我想要的解决方案,而是一个有效的解决方案!

答案 2 :(得分:0)

我有TCPDF 6.2.6。

我发现添加字体是一次性操作,应该使用tools / tcpdf_addfont.php脚本完成。将字体转换并保存到fonts目录中,然后您可以在文档中按名称引用字体。

答案 3 :(得分:0)

对于任何被Google吸引到这里的人:为了使这项工作有效,我使用了以下代码:

$josefin = TCPDF_FONTS::addTTFfont('pdf/JosefinSans-Light.ttf', 'TrueTypeUnicode', '', 96); // echo $josefin;
$pdf->AddFont('josefinsanslight');

在我的CSS中,我使用了:

h2 {font-family: "josefinsanslight"; font-weight:300; color: #611c67; }

使用 addTTFfont 部分可以在tcpdf字体文件夹中生成所需文件后被跳过。

似乎字体名称是从文件名派生的,跳过所有非字母数字字符并转换为小写。

答案 4 :(得分:0)

不要问TCPDF复杂的事情。这样可以很好地工作。

$total= <<<HTML
  <table style="width:100%;border:1px solid grey;">
    <tr>
      <td>Total </td>
      <td align="right" style="font-size:12pt;font-family: 'Times New Roman', Times, serif;"><b>$value</b></td>
    </tr>
  </table>
HTML;

$pdf->writeHTML($total, true, false, false, false, '');