FPDF不会正确居中文本

时间:2013-04-22 11:08:46

标签: php fpdf

我正在尝试使用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字体时,它似乎很合理(但我没有彻底调查),但当然没有正确显示标点符号。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

请使用TCPDF代替FPDF或尝试使用

$pdf->Cell(20,10,'Title',1,1,'C');