使用FPDF和PHP,是否可以在一个单元格中混合两种字体的字符?我想要普通文本字符串中的一个Symbol字符

时间:2019-06-20 19:02:47

标签: php fonts fpdf

我将PHP与FPDF一起使用来创建PDF文件。我正在尝试在ASCII文本的常规字符串中打印希腊rho符号(在Symbol字体中为“ r”)。我可以使用SetFont()单独将其放在单元格中,但无法确定是否有诸如混合字体字符串之类的东西。

我可以创建一个包含一些文本的单元格,然后创建一个具有Symbol字体字符的单元格,然后创建另一个具有以下文本的单元格。尽管无论如何尝试使单元格中的文本对齐,间距看起来都是错误的。

$pdf->Cell(35,14,'+/- 5m','LT',0,'R');
$pdf->SetFont('Symbol','',8);
$pdf->Cell(5,14,'r','T',0,'L');
$pdf->SetFont('Arial','',8);
$pdf->Cell(60,14,' peak to peak','TR',0,'L');

我希望它输出“ +/- 5mp peak to peak”,其中希腊rho符号代替mp中的p。意思是“ millirho”。

最后我得到一个'em'空格,将'm'和rho符号分隔开,我根本不希望有空格。

最终看起来像是“峰到峰之间+/- 5m p”。

1 个答案:

答案 0 :(得分:0)

我想出了一个难看的硬编码解决方法:

$pdf->SetFont('Arial','',8);
$pdf->Cell(100,14,'+/- 5m   peak to peak','LTR',0,'C');
# now back up and print a rho symbol in the right place
$x = $pdf->GetX(); $y = $pdf->GetY(); $pdf->SetXY($x-69.5,$y-0.5);
$pdf->SetFont('Symbol','',9); $pdf->Cell(5,14,'r'); 
$pdf->SetXY($x,$y);
$pdf->SetFont('Arial','',8); # restore original font

但是,如果我更改了与字体大小等相关的形式,则也必须重做。