我在 phpword 中使用 Laravel。所以在这里我想将 html 布局从刀片文件导出到 word。但是当我尝试创建它时,出现的错误: DOMDocument::loadXML(): Opening and ending tag mismatch: link line 1 and head in Entity, line: 1我的代码:$content = view('docs.index')->render();$dom = new DOMDocument();$dom->loadHTML($content);$dom->saveHTML();$phpWord = new PhpWord();Html::addHtml($phpWord->addSection(), $dom->saveHTML(), true);$objWriter = IOFactory::createWriter($phpWord, 'Word2007');$objWriter->save('doc_index_'.Carbon::now()->format('d-m-y h-i').'.docx');return view('papers.show')->with('success');这是我的刀片文件:<!DOCTYPE html><html><head> <title>Doc HTML</title> <meta charset="utf-8"> <link rel="stylesheet" href="/bootstrap/css/bootstrap.min.css" /></head><body><div> <p> Laravel is a web application framework with expressive, elegant syntax. <br /> We believe development must be an enjoyable and creative experience to be truly fulfilling. <br /> Laravel takes the pain out of development by easing common tasks used in many web projects. <br /> </p></div></body></html>打印我的 $content 变量:"""<!DOCTYPE html><html><head> <title>Doc HTML</title> <meta charset="utf-8" /> <link rel="stylesheet" href="/bootstrap/css/bootstrap.min.css" /></head><body><div> <p> Laravel is a web application framework with expressive, elegant syntax. <br /> We believe development must be an enjoyable and creative experience to be truly fulfilling. <br /> Laravel takes the pain out of development by easing common tasks used in many web projects. <br /> </p></div></body></html>"""
3 回答
阿晨1998
TA贡献2037条经验 获得超6个赞
您的<meta>
标签在技术上没有关闭。要遵循省略结束标记的元素的规范,它们必须以/>
. 因此,您拥有的<br />
和<link ... />
您的元标记应该是怎样的<meta ... />
。
人到中年有点甜
TA贡献1895条经验 获得超7个赞
<!DOCTYPE html>
模板开头的部分导致了该错误。关于读取样式文件,从上面讨论PHPWord/Html.php 中提供的函数详细信息的链接,您可以看到 addHtml 将只使用 body 标记的内容而忽略其他所有内容。
关于上述讨论中的另一个问题,我认为 PHPWord 不支持来自 css 文件的任何类型的样式包含 - 在这个特定示例中,我不确定将引导响应式样式应用于 word 文档的预期结果是什么内容。
- 3 回答
- 0 关注
- 216 浏览
添加回答
举报
0/150
提交
取消