我正在进行一项任务,我需要捕获在html上生成的内容并将其发送到word文档,以便可以进一步发送。
我已经捕获了内容并使用json对象将其发送到php并生成了word文档,但是当html具有特殊字符时,它会导致word文档被破坏。我尝试在htmlspecialchars
函数中使用addText
,但它没有帮助。
这是我的PHP代码
\PhpOffice\PhpWord\Autoloader::register();
$phpWord = new \PhpOffice\PhpWord\PhpWord();
$jsonData2 =json_decode($_POST['outputData'],true);
foreach ($jsonData2 as $key => $value) {
$section-> addTextBreak();
$section->addText($key, array('size' => 16, 'bold' => true, 'color' => '#3b5999'));
$section-> addTextBreak(2);
foreach ($value as $key => $value) {
$section->addText($value, array('size' => 11));
$section-> addTextBreak();
}
}
有人可以如何捕获特殊字符并将其显示在单词doc中,这样就不会导致文件损坏
答案 0 :(得分:0)
尝试将Content-Type标题放在文件的顶部:
header('Content-type: text/html; charset=utf-8');
答案 1 :(得分:0)
编写某些格式的文档,尤其是基于XML的文档,需要正确的转义输出。没有它,当您在文档中加上“&”号,引号等特殊字符时,文档可能会损坏。
转义可以通过两种方式执行:软件开发人员在库外部和内置机制在库内部。
默认情况下,为了与v0.13.0之前的版本向后兼容,默认情况下禁用了内置机制。要打开它,请在您的PHPWord配置文件中将outputEscapingEnabled选项设置为true
或
在运行时使用以下指令:
\PhpOffice\PhpWord\Settings::setOutputEscapingEnabled(true);