如何正确使用laravel-dompdf生成视图的pdf

时间:2017-01-09 12:05:28

标签: php pdf laravel-5 dompdf

我有以下观点



<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>  
   <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
</head>
<body>
<ul class="nav nav-tabs">
    <li role="presentation" class="active"><a href="#">Home</a></li>
    <li role="presentation"><a href="#">Profile</a></li>
    <li role="presentation"><a href="#">Messages</a></li>
</ul>
<form>
    <div class="form-group">
        <label for="exampleInputEmail1">Email address</label>
        <input type="email" class="form-control" id="exampleInputEmail1" placeholder="Email">
    </div>
    <div class="form-group">
        <label for="exampleInputPassword1">Password</label>
        <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
    </div>
    <button type="submit" class="btn btn-default">Submit</button>
</form>
</body>
</html>
&#13;
&#13;
&#13;

并使用以下代码生成pdf文件

public function pdf()
{
    $view = view()->make('Article::print');
    $contents = $view->render();
    $pdf = PDF::loadHTML($contents)->setPaper('a4', 'landscape')->setWarnings(false);
    return $pdf->download('santosh.pdf');
}

但它没有给出正确的输出,而是返回Returned PDF view

我如何解决,请帮助

3 个答案:

答案 0 :(得分:2)

你不能使用复杂的设计pdf,但你可以用简单的css创建pdf。

答案 1 :(得分:1)

DomPDF支持有限数量的CSS项目。如果您需要将html复杂化为PDF,请使用wkhtml2pdf。它提供了更好的输出

答案 2 :(得分:0)

当前版本的Dompdf(0.7.0)对基于Bootstrap的样式的支持有限(参见relevant issue)。使用0.7.1 Dompdf将更接近能够呈现您的文档,但我仍然不会推荐它直到下一个版本(0.7.2?),因为它仍然缺少关于box-sizing CSS的一些必要功能属性。