【问题标题】:In Symfony, Is there any way to create pdf file pages at a time?在 Symfony 中,有没有办法一次创建 pdf 文件页面?
【发布时间】:2012-09-29 05:11:59
【问题描述】:

我有带有 TWIG 模板引擎的 Symfony 框架。我正在制作 1000 页的 pdf

<dynamic-page>...content in for-loop...</dynamic-page>`

但是,当使用ps_facade 写入磁盘时,它给了我内存耗尽的致命错误。那么有什么方法可以让我以 5 页为单位创建这个 pdf 文件吗?

经过研究,我发现使用包含 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>

【问题讨论】:

    标签: php symfony pdf-generation twig


    【解决方案1】:

    您应该为long processes like this 使用消息传递系统。 RabbitMQ 可以胜任。

    1. 您的用户对 pdf 的请求
    2. 您立即告诉他,他的请求已得到考虑,工作完成后他会收到一封电子邮件,或者他可以稍后再回来
    3. 消费者看到作业,并启动 pdf 生成(不必在 php 中)。

    优点: 由于进程不是网页版php运行的,所以没有memory_limit和max_execution时间限制 如果作业已经在运行,您可以告诉您的用户,而不是为同一个 pdf 启动另一代。而且由于人们在不耐烦时经常刷新页面,这对您的服务器来说确实是一个巨大的优势(更少的 CPU 使用率)。

    缺点: 你必须设置一个消息服务器并学习一些东西。但这真的是骗局吗?

    【讨论】:

    • 感谢您的输入,但这并不能完全回答我的问题:)。我知道所有这些消息服务和一切。但这不是我要找的。​​span>
    猜你喜欢
    • 2011-03-08
    • 1970-01-01
    • 2012-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2019-12-26
    • 1970-01-01
    相关资源
    最近更新 更多