我使用" phpword"用于生成.doc文件的类,但我遇到了问题:
如何为此问题添加换行符?例如,我有以下文字:
代码(在变量中):
"这是
文字
使用换行符"
现在,如果我们将其输入word文档中......将显示:
"这是一个包含换行符的文字。"
我该怎么做?我希望word文档中的文字具有这种风格:
这是
文字
换行
谢谢!
答案 0 :(得分:0)
使用phpword无法做到这一点。您必须将字符串拆分为行并使用addTextBreak
。
<?php
$text = "This is
a text
With line break";
$lines = explode("\n", $text);
foreach ($lines as $line) {
$doc->addText($line);
$doc->addTextBreak();
}
答案 1 :(得分:0)
我遇到了同样的问题,但随后改变了模板文件。实际上无法添加换行符,setValue
函数仅适用于普通字符串。
但是,如果您想尝试修复,可以将以下行添加到Template.php
@line 91:
$replace = preg_replace('~\R~u', '</w:t><w:br/><w:t>', $replace);
它很脏,因为您不确定最后一个标记是<w:t>
标记;它可能是别的东西。但这大部分时间都可以解决问题:它会将换行符\n
替换为Word用于换行符的<w:br>
标记。
答案 2 :(得分:0)
function add_entered_text( $textrun, $text, $par1, $par2 ){
$textlines = explode("\n", $text);
$textrun->addText(array_shift($textlines), $par1, $par2);
foreach($textlines as $line) {
$textrun->addText($line, $par1, $par2);
}
}
示例:
add_entered_text( $section, $text1, $header, $style );
add_entered_text( $section, $text2, null, $style );
add_entered_text( $table->addCell(4000, $cellRowSpan), $text3, null, $style );
答案 3 :(得分:0)
最简单的解决方案是在字符串中用 '
str_replace("\n", '<w:br/>', $text)