我有带有TWIG模板引擎的Symfony框架。我在
中制作了1000页的pdf<dynamic-page>...content in for-loop...</dynamic-page>`
然而,当使用ps_facade
写入磁盘时,它会给我内存耗尽致命错误。那么有什么方法可以创建这个pdf 5页大块?
经过研究,我发现使用具有5页数据的模板然后将其写入文件应该可行。但是这样我就无法添加页码,因为页码应该是1-1000。我的页脚代码如下所示,
<placeholders>
<footer>
<div height="30px" width="100%">
<hr/>
<div float="left">Blah Blah</div>
<div float="left" margin-left="350px"><page-info format="Page %s of %s"></div>
</div>
</footer>
</placeholders>
答案 0 :(得分:2)
您应该使用long processes like this的消息传递系统。 RabbitMQ可以完成这项工作。
优点: 由于该过程不是由web版本的php运行,因此它没有memory_limit和max_execution时间限制 如果作业已在运行,您可以告诉您的用户,而不是为同一个pdf启动另一代。由于人们经常在不耐烦的情况下刷新页面,这对于您的服务器来说真的是一个巨大的专业版(CPU使用率更低)。
缺点: 你必须设置一个消息服务器并学习一些东西。但这真的是一个Con?