使用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");
答案 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);