猿问

将刀片布局传递给 phpword

我在 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>


"""


HUWWW
浏览 217回答 3
3回答

阿晨1998

您的<meta>标签在技术上没有关闭。要遵循省略结束标记的元素的规范,它们必须以/>.&nbsp;因此,您拥有的<br />和<link ... />您的元标记应该是怎样的<meta ... />。

人到中年有点甜

<!DOCTYPE html>模板开头的部分导致了该错误。关于读取样式文件,从上面讨论PHPWord/Html.php 中提供的函数详细信息的链接,您可以看到 addHtml 将只使用 body 标记的内容而忽略其他所有内容。关于上述讨论中的另一个问题,我认为 PHPWord 不支持来自 css 文件的任何类型的样式包含 - 在这个特定示例中,我不确定将引导响应式样式应用于 word 文档的预期结果是什么内容。
随时随地看视频慕课网APP
我要回答