【问题标题】:FPDF - How to make text to display in middle of a page?FPDF - 如何使文本显示在页面中间?
【发布时间】:2021-01-30 09:32:08
【问题描述】:

我正在使用 FPDF 库来生成 PDF 文件。

文件中的每一页为 100 毫米 x 100 毫米,四周留有 10 毫米的边距。

每页显示的文字各不相同(但应始终不超过 200 个字)。

我真的希望文本显示在页面中间完美的中心。

目前,我可以让文本居中对齐,但我很难定位它,所以它每次都位于页面中间。到目前为止,这是我的代码:

$pdf->AddPage();
$pdf->SetMargins($card_margin,$card_margin,$card_margin);
$pdf->SetAutoPageBreak(true,$card_margin);
$pdf->SetFont('Avenir','','10');
$pdf->SetAutoPageBreak(false);
    
$pdf->MultiCell(80,5,$text_to_print,0,'C');

$pdf->SetFont('Alex Brush','','13');
$pdf->MultiCell(80,10,$signee_text_to_print,0,'C');

这是由上述代码生成的 PDF 页面的屏幕截图:

任何想法或建议将不胜感激!

【问题讨论】:

    标签: php pdf fpdf


    【解决方案1】:

    在调用MultiCell 之前使用SetY 以“下推”文本在页面上的开始位置。由于您指出它永远不会超过 200 个字符,您应该能够估计高度并为 X 使用一个固定值,这将使您每次都非常接近垂直中心。

    $pdf->SetAutoPageBreak(false);
    $pdf->SetY(100);  // for example ... value will need to be changed of course
    $pdf->MultiCell(80,5,$text_to_print,0,'C');
    

    【讨论】:

    • 谢谢戴夫!我实际上最终使用了 SetY 并提出了一个计算来粗略估计一条消息的总高度(基于该消息中的字数)并使用它来确定 Y 位置。
    • 很高兴你知道了。出于某种原因,我总是混淆 X 和 Y :(
    猜你喜欢
    • 1970-01-01
    • 2013-12-22
    • 2015-02-27
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 2016-05-04
    • 2018-10-02
    相关资源
    最近更新 更多