laravel-dompdf:如何让dompdf呈现与调用它相同页面的pdf?

时间:2017-05-19 06:02:54

标签: php laravel dompdf

我尝试做的是将页面传递给dompdf以进行渲染,但渲染页面的按钮位于页面本身。

页面(index.blade.php)

<div class="event-links">
        <div class="panel panel-default">
            <!-- <a href="{{    URL::to('/events/create')   }}"> -->
            <a href="{{ action('StrawdogController@pdfgen')}}">
                    <div class="panel-heading">Generate PDF</div>
            </a>                
        </div>
    </div>

    <div class="nametag-layout">
        <table class="table table-striped pagin-table table-bordered">
            <thead>
                <tr>
                    <td>Mod Start Time</td>
                    <td>Mod End Time</td>
                    <td>Mod Description</td>
                </tr>
            </thead>
            <tbody>
            @foreach($mods as $key => $value)
                <tr>
                    <td>{{ $value->mod_description }}</td>
                    <td>{{ $value->mod_start_time }}</td>
                    <td>{{ $value->mod_end_time }}</td>
                </tr>
            @endforeach
            </tbody>
        </table>
    </div>

和Controller功能(占位符)

public function pdfgen()
{
    $dompdf = new Dompdf();
    $dompdf->loadView('strawdogs.index');
    $dompdf->render();
    $dompdf->stream();
}

}

我的页面上有一个名为&#39; Generate PDF&#39;我希望用户能够按下它并获取位于同一页面上的表格的PDF。目前,我已经尝试了,如果你打电话给另一个页面,我可以看到它传递了值,但它似乎并没有在同一页面上进行。

基本上,有没有办法在同一页面上调用dompdf,如果有,我该怎么做?

3 个答案:

答案 0 :(得分:0)

在您的控制器上,您必须调用view方法并使用compact发送变量,然后使用loadHtml()并将view方法作为参数传递。

        $options = new Options();
        $options->set('defaultFont', 'DejaVu Sans');
        $dompdf = new Dompdf($options);
        // instantiate and use the dompdf class
        $html = view('pages.callsheet_view', compact(['request'],['number_of_no']));
        $dompdf->loadHtml($html,'UTF-8');


        $dompdf->render();
        $dompdf->stream();

答案 1 :(得分:0)

您可以在不使用渲染按钮的情况下创建新视图(pdf.blade.php)。 单击index.blade.php上的render按钮时,从pdf.blade.php生成pdf。

PDF页面(pdf.blade.php)

<div class="nametag-layout">
    <table class="table table-striped pagin-table table-bordered">
        <thead>
            <tr>
                <td>Mod Start Time</td>
                <td>Mod End Time</td>
                <td>Mod Description</td>
            </tr>
        </thead>
        <tbody>
        @foreach($mods as $key => $value)
            <tr>
                <td>{{ $value->mod_description }}</td>
                <td>{{ $value->mod_start_time }}</td>
                <td>{{ $value->mod_end_time }}</td>
            </tr>
        @endforeach
        </tbody>
    </table>
</div>

和Controller功能(占位符)

public function pdfgen()
{
    $dompdf = new Dompdf();
    $dompdf->loadView('strawdogs.pdf');
    $dompdf->render();
    $dompdf->stream();
}

答案 2 :(得分:0)

PDF::loadView('x.blade.php')->output();