You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

mPDF使用WriteText()方法写入文本时如何设置居中对齐

mPDF 写入文本居中实现方法

WriteText() 方法用于在指定固定X/Y坐标位置写入单行文本,本身没有内置对齐配置项,要实现文本居中效果可选择以下两种实现方式:

  • 方式一:手动计算坐标适配WriteText()(适用于必须使用该方法的场景)
    核心逻辑是先获取当前字体样式下待写入文本的实际渲染宽度,结合页面正文可用宽度,计算出居中状态下对应的X轴坐标,替换原有固定X参数即可。
    实现代码:
    <?php
    // 依赖引入、类初始化、新增页面、导入源PDF模板的原有代码无需修改
    $content = "This is a text";
    $yPos = 20; // 原有的Y轴坐标保持不变
    // 计算页面正文区域可用宽度:页面总宽度减去左右页边距
    $availableWidth = $pdf->w - $pdf->lMargin - $pdf->rMargin;
    // 获取文本在当前字体配置下的实际渲染宽度
    $textWidth = $pdf->GetStringWidth($content);
    // 计算居中对应的X轴坐标
    $xPos = $pdf->lMargin + ($availableWidth - $textWidth) / 2;
    // 写入居中后的文本
    $pdf->WriteText($xPos, $yPos, $content);
    
    // 其余原有业务逻辑保持不变
    ?>
    
  • 方式二:改用自带对齐能力的WriteCell()方法(更推荐,支持多对齐规则)
    如果没有强制使用WriteText()的要求,直接调用WriteCell()方法即可,该方法原生支持对齐参数,传入'C'即可实现居中,无需手动计算坐标,同时支持左对齐、右对齐、多行文本等场景。
    实现代码:
    <?php
    // 依赖引入、类初始化、新增页面、导入源PDF模板的原有代码无需修改
    $content = "This is a text";
    $availableWidth = $pdf->w - $pdf->lMargin - $pdf->rMargin;
    // WriteCell参数顺序:单元格宽度、行高、文本内容、边框样式、换行位置、对齐方式、是否填充背景、关联链接
    // 宽度传入正文可用宽度,对齐参数传'C'即可自动居中
    $pdf->WriteCell($availableWidth, 10, $content, 0, 0, 'C');
    
    // 其余原有业务逻辑保持不变
    ?>
    

提示:如果你自定义了页面尺寸、页边距,或者导入的PDF模板有特殊排版边界,对应调整可用宽度的计算参数即可适配。

内容的提问来源于stack exchange,提问作者Vika

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 16:39:13