You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

PHPWord中firstLine首行缩进不生效问题求助

PHPWord中firstLine首行缩进不生效问题求助

嗨,我之前维护老项目用PHPWord 1.4的时候,也碰到过一模一样的坑!折腾了好一阵才摸清楚门道,给你分享两个亲测可行的解决思路:

一、直接用你已验证有效的firstLineChars替代

既然你说firstLineChars能正常工作,那如果是做中文文档的首行缩进(通常是2个字符),用这个参数反而更直观,还不用纠结缇值换算:

$paragraphStyle = array(
    'indentation' => ['firstLineChars' => 2] // 首行缩进2个字符宽度
);

我当时用这个方案完全没毛病,效果和预期的首行缩进一致,还贴合中文排版的习惯。

二、如果一定要用firstLine,试试兼容老版本的写法

PHPWord 1.4作为早期版本,确实存在一些参数兼容问题。你可以先试试把firstLine的数值调大测试,比如设为720(对应36磅,大概2个中文字符的宽度):

$paragraphStyle = array(
    'indentation' => ['firstLine' => 720]
);

另外还有个可能:早期版本里首行缩进需要配合基础左缩进一起设置,你可以试试这种组合写法:

$paragraphStyle = array(
    'indentation' => [
        'left' => 0,
        'firstLine' => 720
    ]
);

不过这个方案我当时测试下来效果不稳定,还是firstLineChars的方案最省心。

最后提个小建议

如果项目允许的话,尽量升级到PHPWord 2.x版本吧,新版本对段落样式的支持完善很多,这类小bug也少了不少。要是老项目没法升级,那firstLineChars绝对是最稳妥的选择!

火山引擎 最新活动