php中怎么让文本断行,php - PHPWord如何在文本运行中添加文本中断/换行 - SO中文参考 - www.soinside.com...

这篇博客介绍了如何在PHPWord中正确处理文本段落中的换行符,提供了一个函数示例,使用TextRun和addTextBreak方法来保持Word文档中的换行格式。此问题在PHPWord的某些版本中存在,但预计会在后续更新中得到修复。
摘要由CSDN通过智能技术生成

我不知道接受的答案中的PR是否已被合并,或者事实上它在2013年是否已经可行,但无论如何,自2015年以来,如果不是更早,在initial response to #553 on GitHub中指出在段落中插入换行符的正确方法:

为段落创建一个TextRun;

通过调用TextRun本身的addTextBreak()方法向TextRun添加换行符。

这是一个函数,它将处理包含文字换行符(CR-LF ["\r\n"],LF ["\n"]或CR ["\r"])的字符串中的完整文本段落:

/**

* @param \PhpOffice\PhpWord\Element\AbstractContainer $container

* E.g. a section or table cell.

* @param string $text String with literal line breaks as CR-LF, LF or CR.

* @param string|array|\PhpOffice\PhpWord\Style\Paragraph $paragraphStyle

* @param string|array|\PhpOffice\PhpWord\Style\Font $fontStyle

*

* @return \PhpOffice\PhpWord\Element\TextRun

*/

function addTextWithLineBreaks(

\PhpOffice\PhpWord\Element\AbstractContainer $container,

$text,

$fontStyle,

$paragraphStyle

) {

$textRun = $container->addTextRun($paragraphStyle);

foreach (preg_split('/(\\r\\n?+|\\n)/',

$text,

-1,

PREG_SPLIT_DELIM_CAPTURE

) as $i => $part) {

if ($i & 1) {

$textRun->addTextBreak(1, $fontStyle, $paragraphStyle);

} else {

$textRun->addText($part, $fontStyle, $paragraphStyle);

}

}

return $textRun;

}

PHPWord(0.14.0)当前在读取Word2007文档时丢弃换行符 - 希望在1.0之前修复 - 但是在Word中打开时,上面的输出是正确的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值