tFPDF添加多个DejaVu字体

时间:2016-09-29 23:41:46

标签: php fonts fpdf

使用tFPDF时如何使用多种样式的DejaVu字体?

我想将 DejaVuSans 字体用于某些文本,将 DejaVuSansMono 用于其他文本。

教程显示您可以包含以下字体:$pdf -> AddFont('DejaVu','','DejaVuSans.ttf',true);,然后像$pdf -> SetFont("DejaVu","",10);一样使用

但是如果我添加额外的字体$pdf->AddFont('DejaVu','','DejaVuSansMono.ttf',true);则没有任何变化。

那么如何指定我想要使用Mono字体的位置以及默认字体的位置?

我的代码目前看起来像这样(不起作用):

$pdf->AddFont('DejaVu','','DejaVuSans.ttf',true);
$pdf->SetFont("DejaVu","",10);
$pdf->Cell(10,10 , "sometext");

$pdf->AddFont('DejaVu','','DejaVuSansMono.ttf',true);
$pdf->SetFont("DejaVu","",10);
$pdf->Cell(10,10 , "sometext");

2 个答案:

答案 0 :(得分:1)

对于仍然对答案感兴趣的人

您只需要AddFont一次:

$pdf->AddFont('dejavusans', '', 'DejaVuSans.ttf', true);
$pdf->AddFont('dejavusans', 'B', 'DejaVuSans-Bold.ttf', true);
$pdf->AddFont('dejavusans', 'I', 'DejaVuSans-Oblique.ttf', true);
$pdf->AddFont('dejavusans', 'BI', 'DejaVuSans-BoldOblique.ttf', true);

然后,当为一段文字使用字体时,请使用它:

$pdf->SetFont('dejavusans', '', 9);

$pdf->SetFont('dejavusans', 'I', 10);

所以,只有AddFont一次,然后在你需要它们的地方SetFont。我尝试使用其他名称而不是' dejavusans',但这似乎不起作用。

答案 1 :(得分:0)

您需要添加以下字体:

// Add a Unicode font (uses UTF-8)
$pdf->AddFont('DejaVu', '', 'DejaVuSansCondensed.ttf', true);
$pdf->AddFont('DejaVu', 'B', 'DejaVuSansCondensed-Bold.ttf', true);