导出pdf

时间:2016-07-20 13:13:43

标签: php xampp laravel-5.2 wkhtmltopdf

我使用wkhtmltopdf导出pdf,当我尝试导出pdf localy或从同一网络中的其他机器导出时,它工作正常 但是当我尝试从不是来自同一网络的其他PC导出pdf时,我收到此错误消息

FatalErrorException in WindowsPipes.php line 207: 
Maximum execution time of 30 seconds exceeded

6 个答案:

答案 0 :(得分:1)

这是为了确保坏脚本不会占用太多资源。要允许PHP脚本长时间运行,您需要使用以下任何方法增加PHP脚本的最大执行时间限制; - 请参阅:https://www.simplified.guide/php/increase-max-execution-time

编辑您的php.ini文件并找到以下行:

max_execution_time

将其值更改为300:

max_execution_time = 300

否则,你需要在你的php页面的头部添加这一行:

ini_set('max_execution_time', 300); //seconds

答案 1 :(得分:0)

你的循环可能是无止境的。你需要在php页面的顶部添加它

ini_set('max_execution_time', 300); //300 seconds = 5 minutes

否则添加此行

ini_set('max_execution_time', 0);

答案 2 :(得分:0)

您必须最大化执行时间。

如果您正在使用Live服务器而不是创建名为 user.ini 的文件并编写以下代码。 (将user.ini文件保存在相同文件夹

max_execution_time = 600 // 600 seconds

如果您正在使用localhost,那么您可以使用像这样的ini_set()函数,

ini_set('max_execution_time', 600); //600 seconds 

答案 3 :(得分:0)

这是最好的方法,因此您无需添加它以将这些代码添加到所有页面。转到php.ini中的C://xampp/php/php.ini,然后转到类似max_execution_time = 30的行,将值更改为您希望保存的所需秒数并重新启动XAMPP服务器

答案 4 :(得分:0)

您提到的问题与PHP的max_execution_time ini参数无关。

通过查看您添加到问题中的标记,您似乎正在使用PHP Laravel框架。您可能正在使用PHP库,该库使用wkhtmltopdf生成PDF(例如,来自HTML内容),即KnpLabs/KnpSnappyBundle

这样的库不使用exec函数,它会阻止PHP脚本,直到它及时完成或超出max_execution_time。相反,它使用proc_open函数执行wkhtmltopdf命令并打开输入/输出的文件指针,从而立即返回(因此max_execution_time不会生效)。

如果是这种情况,则Maximum execution time of 30 seconds exceeded的原因与您正在使用的库严格相关。

如果您的库正在使用进程驱动的类来执行wkhtmltopdf命令,那么您描述的问题可能与使用KnpSnappy库的人员描述的原因相同。如果是这种情况,那么请检查这些链接,这可能会有所帮助:

在我的情况下,问题与PHP会话和cookie参数有关,因此我配置了我的库,以便将--cookie参数传递给wkhtmltopdf命令。查看wkhtmltopdf manual了解详情。

答案 5 :(得分:0)

在某些情况下,这种缓慢是由某些缺少的项目引起的,例如:图像,字体和链接。
尝试检查某些图像是否指向无效路径。