Laravel wkhtmltopdf pdf生成超时

时间:2017-09-24 12:05:49

标签: php laravel pdf laravel-5.2 wkhtmltopdf

我正在尝试使用 wemersonjanuario / laravelpdf 在laravel中生成pdf。 以下是我的控制器功能。

public function generate_pdf($table,$all_data)
{
    $pdf_name = $version.'_'.$table.'.pdf';
    File::delete('directory/'.$pdf_name);
    $view = \View::make('pdf',['all_data'=>$all_data]);
    PDF::loadHTML($view)->orientation('Landscape')
        ->save($pdf_name , new Local(base_path().'/public/'));
    return '/public/'.$pdf_name ;
}

下面,

  

$ all_data =我从表中提取的数据

     

$ view =查看我从数据中提取的内容

     

$ table =表名

生成pdf后,我将保存的路径返回到javascript,使用window.open打开路径。

这是刀片区域

    @php($page = 1)
    @foreach ($all_data['p_datas'] as $key => $cols)
    <section class="col-lg-12" style="width: {{$line_size}}px;page-break-before: always" >
        <table class='mytable'  style="border-collapse: collapse;border-spacing: 0px;margin-left: auto; margin-right: auto;">
            <thead style="border-top:1px solid #000000;border-bottom: 1px solid #000000; text-align: center">
                <tr class='top-border bottom-border top'>
                @foreach ($all_data['columns'][$p_no] as $col)
                    <td class="text-center formate" style="width:{{$all_data['column_width'][$col]}}px; padding-right: {{ $all_data['td_space' ]}}px">{!! $col !!}</td>
                @endforeach
                </tr>
            </thead>
            <tbody style="text-align: center;">
            @foreach($cols as $i=>$data)
            <tr>
                @foreach($data as $j=>$dt)
                    <td style="min-height: 40px;padding-bottom: 8px"> {!! $dt !!} </td>
                @endforeach
            </tr>
            @endforeach
            </tbody>
        </table>
    </div>
    <div class="footnote col-sm-12" style="border-top: solid 1px;">
        <span class="footnote" id="footnote">{!!$footnote!!}</span>
    </div>
    <div style="margin-top: 20px; margin-bottom: 10px;">
        <table class="row" style="margin-left: 30px">
            <tbody>
                <td style="width: 400px"><h6>Printed By: {{ $user }}</h6></td>
                <td style="width: 300px"><h6> Page <span> {{ $page }}</span></h6></td>
                <td style="width: 400px"><h6>Print Date : {{ $date }}</h6></td>
            </tbody>
        </table>
    </div>
</section>

    @php($page++)
@endforeach

在表格中我有1000行。在刀片文件中,我每隔25行打一次循环并渲染数据。

如果我只使用下面的代码在html中渲染视图,则需要最多10秒。但是当我尝试生成pdf时,它需要一天或更长时间。这里有什么问题?

  

$ html = $ view-&gt; render();

     

返回$ html

我也使用了dompdf和tcpdf,但那些与wkhtmltopdf相同。有没有解决方案?

0 个答案:

没有答案