laravel-dompdf:如何使 dompdf 呈现调用它的同一页面的 pdf?

laravel-dompdf: How do I make dompdf render a pdf of the same page that it is called from?

我想做的是将一个页面传递给 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>

和控制器函数(占位符)

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

}

我的页面上有一个名为 'Generate PDF' 的按钮,我希望用户能够按下它并获取位于同一页面上的 table 的 PDF。目前,我已经尝试过,如果您调用另一个页面,我可以看到它会传递值,但它似乎不会对同一页面执行此操作。

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

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

        $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();

您可以在没有渲染按钮的情况下创建新视图(pdf.blade.php)。 单击 index.blade.php 上的渲染按钮时,从 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>

和控制器函数(占位符)

public function pdfgen()
{
    $dompdf = new Dompdf();
    $dompdf->loadView('strawdogs.pdf');
    $dompdf->render();
    $dompdf->stream();
}
PDF::loadView('x.blade.php')->output();