如果给定足够大的日期范围,我有一份报告可以生成超过 30,000 条记录。从 HTML 方面来看,这么大的结果集不是问题,因为我实现了一个分页系统,在给定时间将可查看结果限制为 100。
一旦用户按下“获取 PDF”按钮,我的真正问题就会出现。发生这种情况时,我基本上重新运行打印数据的报告部分(报告本身的结果存储在“保存”表中,因此无需重新运行数据收集逻辑),并存储结果产生一个名为 的变量$html
。请记住,此变量现在包含 30,000 条数据记录以及在 PDF 上正确格式化所需的 HTML。创建此 HTML 字符串后,我将其传递给 TCPDF 以尝试为用户生成 PDF 文件。然而,它并没有生成 PDF 文件,而是在没有错误消息(“正在生成 PDf...”)对话框中消失,系统就像您从未要求它做任何事情一样。
通过测试,我发现问题出在$html
传入的变量的大小。如果3K以下的报告记录,它可以正常工作。如果结束了,将打印报告的 HTML 端,但不会打印 PDF。
有用的信息
- PHP 5.3
- 用于 PDF 生成的 TCPDF(也尝试过 PS2PDF)
- 脚本内存限制:500 MB
在生成这种大小的 PDF 时,你们将如何处理这种规模的数据?