使用PHP生成许多pdf页面

时间:2015-11-28 20:10:00

标签: php pdf yii2

使用PHP生成许多页面(超过5,000页)时遇到问题。实际上,问题是等待生成的时间。

我使用框架YII 2.0和小部件mPDF,从2分钟开始生成60页等待它的时间。我必须在这个时候进行最大化,但是必须生成pdf(使用css来设置文档样式)。

我理解生成5,000页以上需要花费一段时间,但我需要最大限度地增加这个时间,现在的方式太长了。

有人知道这样做的方法吗?没有必要使用YII,如果有其他方式与PHP(库,或其他方式)。

代码:

        $content = $this->renderPartial('tabela-pdf', [
            'model' => $model,
            'table' => $table, //CONTENT
        ]);

        $header = $this->renderPartial('pdf');

        // setup kartik\mpdf\Pdf component
        $pdf = new Pdf([
            // set to use core fonts only
            'mode' => Pdf::MODE_CORE,
            // A4 paper format
            'format' => Pdf::FORMAT_A4,
            // portrait orientation
            'orientation' => Pdf::ORIENT_PORTRAIT,
            // stream to browser inline
            'destination' => Pdf::DEST_BROWSER,
            // your html content input
            'content' => $content,
            // format content from your own css file if needed or use the
            // enhanced bootstrap css built by Krajee for mPDF formatting
            'cssFile' => '@vendor/kartik-v/yii2-mpdf/assets/kv-mpdf-bootstrap.min.css',
            // any css to be embedded if required
            'cssInline' => '.kv-heading-1{font-size:14px}',
            // set mPDF properties on the fly
            'options' => ['title' => 'Relatório'],
            'defaultFontSize' => 3,
            'marginLeft' => 10,
            'marginRight' => 10,
            'marginTop' => 30,
            'marginBottom' => 11,
            'marginHeader' => 6,
            'marginFooter' => 6,
            // call mPDF methods on the fly
            'methods' => [
                'SetHeader' => [$header],
                'SetFooter' => ['<p style="text-align: center;font-size: 8px;">FOOTER</p>'],
            ]
        ]);
        $pdfName = 'FILE-_' . date('d-m-Y') . '.pdf';

        Yii::$app->response->format = Response::FORMAT_HTML;
        Yii::$app->response->setDownloadHeaders($pdfName, 'application/pdf');

        return $pdf->render();

只是一张带有大表的文件(没有相同的内容)

0 个答案:

没有答案