我正在尝试使用 FPDF 来呈现学士/硕士论文的封面内容。
我需要能够显示捷克字母,包括带有标点符号的字符(例如 ř、č、ž、ý、ě)。因此,我从本地 Times New Roman TTF 字体文件在http://fpdf.fruit-lab.de/index.php上生成了 FPDF 字体文件。
我正在使用以下代码来渲染封面。
function toISO($text) {
return iconv('UTF-8', 'ISO-8859-2', $text);
}
function buildImpressionPDF($school, $faculty, $thesisType, $firstname, $surname, $year)
{
$pdf = new FPDF();
$pdf->AddPage();
$pdf->AddFont('times', '', 'times.php');
$pdf->SetFont('times', '', 18);
$pdf->setMargins(0, 0, 0);
$pdf->SetAutoPageBreak(false);
$pdf->Cell(0, 20, toISO($school), 0, 0, 'C');
$pdf->SetY(20);
$pdf->Cell(0, 20, toISO($faculty), 0, 0, 'C');
$pdf->SetY(($pdf->h / 2) - 10);
$pdf->Cell(0, 20, toISO($thesisType), 0, 0, 'C');
$pdf->SetY(-40);
$pdf->Cell(0, 20, toISO($firstname . ' ' . $surname), 0, 0, 'C');
$pdf->SetY(-30);
$pdf->Cell(0, 20, toISO($year), 0, 0, 'C');
return $pdf;
}
文本呈现良好,包括标点符号,但没有正确对齐 - 有些行比其他行更靠右。
我怀疑这可能是自定义字体的问题。当我使用原始的 FPDF 字体时,它似乎证明很好(但我没有彻底调查),但当然没有正确显示标点符号。
我究竟做错了什么?