首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用图像生成PDF太慢了

用图像生成PDF太慢了
EN

Stack Overflow用户
提问于 2014-09-16 01:45:19
回答 3查看 9K关注 0票数 12

我目前遇到的一个大瓶颈是,每次有人下订单时都会生成PDF格式。对于一个订单来说,这并不是什么大问题,但是当在短时间内有很多订单时,这个过程是非常缓慢的。

PDF需要文本信息、QR代码、条形码、徽标和1/4宽的图像(最多可达20+)。

电流处理w/ DOMPDF:

  1. 创建w/ PHP并保存为png的QR代码映像
  2. 创建条形码图像并将其保存为png
  3. DomPDF生成PDF

新思维:

  1. HTML2PDF创建PDF,并使用它的qr和条形码标记生成条形码

理论上,这将处理QR和条形码图像,但其馀的图像使其速度太慢。

这样做,除了QR和条形码之外,没有任何其他图像,PDF可以在大约500 as内生成,但是一旦我开始添加图像,它就会增加到2,3,4,5+秒。

当运行测试和处理~10k订单时(几分钟内),大约12小时后,它仍然在处理PDF,直到我沮丧地关闭了它。

PDF是在一个单独的队列过程中生成的,因此在订购时,这个人不需要等待,但是-仍然.在高流量情况下,他们不能用5+小时来接收他们的确认PDF。

问题/ TLDR:

如何使使用动态qr代码、动态条形码、动态文本和1-20静态图像(所有PDF之间的图像相同)创建PDF的过程更快?

还有其他我没想过的潜在的事情吗?也许可以制作一个PDF模板,并以某种方式使用PHP来填充动态点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-09-16 21:19:55

我强烈建议您使用TCPDF库。它非常快,可以很容易地集成到CakePHP中。您可以在TCPDF示例页面中找到许多示例,说明如何将图像、条形码和QR代码包含到PDF中。

要进一步提高性能,请使用页面中的提示:

  • 安装并配置像XCache这样的PHP缓存器;
  • 编辑php.ini文件,增加脚本可能消耗的最大内存量(memory_limit);
  • 编辑php.ini文件并增加每个脚本的最大执行时间(max_execution_time);
  • 编辑config/tcpdf_config.php文件:手动设置$_SERVER‘’DOCUMENT_ROOT‘、K_PATH_MAIN和K_PATH_URL常量,并删除自动计算部分;
  • 如果没有使用泰语,请编辑config/tcpdf_config.php文件,并将K_THAI_TOPCHARS常量设置为false;
  • 如果不需要扩展字符,编辑config/tcpdf_config.php文件并将默认字体设置为核心字体;
  • 如果不需要UTF-8 Unicode,请将TCPDF构造函数上的$unicode参数设置为false,将$encoding参数设置为“ISO-8859-1”或其他字符映射。
  • 默认情况下,TCPDF允许字体子设置来减小嵌入式Unicode TTF字体的大小,这个过程非常缓慢,需要大量内存,可以使用setFontSubsetting(false)方法关闭;
  • 尽可能使用核心字体而不是嵌入式字体;
  • 避免使用HTML语法(writeHTML和writeHTMLCell方法),如果不是严格要求的话;
  • 将大型HTML块分割成较小的块;
  • 避免使用交易,如果没有严格要求;
  • 更改后重新启动the服务器。

如果这样做不能将性能提高到可接受的水平,您可以将CakePHP应用程序(或者只是运行生成PDF的脚本(如果它不使用CakePHP)安装在另一个具有更多可用资源的服务器上,并且只使用该服务器进行PDF生成。

票数 5
EN

Stack Overflow用户

发布于 2018-06-04 14:56:48

如果不需要透明性,可以尝试使用JPEG而不是PNG文件。

例如,在TCPDF中,我必须生成一个背景有一个大PNG的PDF (18厘米x18厘米,300 PNG)。在生成文件之前,我必须等待11秒钟。我用同样大小的JPEG和DPI替换了图像,用了不到1秒的时间。

票数 4
EN

Stack Overflow用户

发布于 2017-02-11 06:31:43

TCPDF对图像的处理也非常慢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25859506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档