Используя FPDF и PHP, есть ли способ смешивать символы из двух шрифтов в одной ячейке? Я хотел бы один символ символа в обычной текстовой строке - PullRequest
0 голосов
/ 20 июня 2019

Я использую PHP с FPDF для создания PDF-файлов. Я пытаюсь напечатать греческий символ rho ('r' в шрифте Symbol) в обычной строке текста ASCII. Я могу поместить его в ячейку самостоятельно с помощью 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 заменен на p в mp. Это значит «миллирхо».

В итоге я получаю пробел 'em', разделяющий 'm' и символ rho, где я вообще не хочу пробелов.

В конечном итоге это выглядит как «+/- 5m p пик к пику».

1 Ответ

0 голосов
/ 20 июня 2019

Я нашел уродливое жестко закодированное решение:

$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

Но если я изменю что-либо в форме, связанной с размером шрифта и т. Д., Это тоже нужно будет переделать.

...