我的文字包含段落,空格和来自数据库的正统文本。
您好。
我的名字是约翰。
谢谢
但是当我使用带有TemplateProcessor的PHP Word移动到Word文档时,它会生成没有段落的所有内容。
我发现的一个解决方案就是这样做:
$text=preg_replace('/\v+|\\\r\\\n/','<w:p/>',$TextWhitoutParagraphs);
他实际上是用段落写的,但只有第一段是合理的。
如何正确地使用段落和所有文本进行正确处理?
答案 0 :(得分:1)
您可以使用cloneBlock。我将其与合理的文本一起使用,并且效果很好。在您的模板中使用:
${paragraph}
${text}
${/paragraph}
然后用“ \ n”将您的字符串炸开:
$textData = explode("\n", $text);
$replacements = [];
foreach($textData as $text) {
$replacements[] = ['text' => $text];
}
$templateProcessor->cloneBlock('paragraph', count($replacements), true, false, $replacements);
答案 1 :(得分:0)
TemplateProcessor只能与单行字符串一起使用(请参阅文档:“只能替换单行值。”http://phpword.readthedocs.io/en/latest/templates-processing.html)
你可以尝试用''替换你的新行(关闭已打开的段落并开始一个新段落),但这只是我现在的猜测。检查生成的Word-XML是否存在语法错误总是有帮助的。