我正在尝试使用IO TCPDF导出pdf(我正在使用Symfony 2)但是当我尝试导出的数据量超过650行时,我收到以下错误消息:
"Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/html/AiresProxyAudit/vendor/tcpdf/tcpdf.php on line 23099"
我更改了这些变量memory_limit
和max_execution_time
的值,以便增加我可以导出的数据量,但每次发生时都是相同的。我究竟做错了什么?这是我的代码。
谢谢,希望你们能帮助我。
public function export_urlAction($ name){ $ usuario = $ this-> get('security.context') - > getToken() - > getUserName();
$dm = $this->get('doctrine.odm.mongodb.document_manager')
->getRepository('ReportesBundle:RporURL')
->url($this->get_id($usuario,$name));
$totalurls = $this->get('doctrine.odm.mongodb.document_manager')
->getRepository('ReportesBundle:RTotales')
->total($this->get_id($usuario,$name), "url");
$reportes = array();
$totales = array();
foreach ($dm as $value) {
$reportes[] = $value;
}
foreach ($totalurls as $value) {
$totales[] = $value;
}
$html = $this->renderView('ReportesBundle:PDF:pdfurl.pdf.twig', array('reporte' => $reportes, 'totales' => $totales));
//io_tcpdf will returns Response object
return $this->get('io_tcpdf')->quick_pdf($html);
}
答案 0 :(得分:0)
我找到了解决方案,我将pdf生成分为3个twig模板:
$ arrayHtmll = array();
$ html = $ this-> renderView(' ReportesBundle:PDF:pdfurl.pdf.twig',array(' reporte' => $ totalRUrl [0],' totales' => $ totales));
$ arrayHtmll [] = $ html;
for($ index = 1; $ index< count($ totalRUrl)-1; $ index ++){
$ html = $ this-> renderView(' ReportesBundle:PDF:pdfurlmedio.pdf.twig',array(' reporte' => $ totalRUrl [$ index],&#39 ; totales' => $ totales)); // agregue el twig del medio
$ arrayHtmll [] = $ html;
}
$ html = $ this-> renderView(' ReportesBundle:PDF:pdfurlfinal.pdf.twig',array(' reporte' => $ totalRUrl [count($ totalRUrl)-1 ],' totales' => $ totales));
$ arrayHtmll [] = $ html;
foreach($ arrayHtmll as $ value){ $ fff-> writeHTML($ value,false,false,true,false,'');
我使用mongo数据库探测了26020个文档,并且我没有生成它的问题。我将php文件的变量memory_limit的值更改为256。