我有一个网站,以客户信息和他们一天订购的东西的形式处理大量数据。现在,由于这个特定的网站有数百个客户端,每天每个客户都有5到20个订单。
网站的所有者想要一个页面,其中包含客户交付信息以及每个单独页面中的订单列表,以便他们可以打印并将其粘贴在包裹上。但是,每个新客户端信息都需要在新页面中开始。
例如:
- 首页---
客户1送货信息
客户1订单信息
“如果订单信息很短,这里有一些空白区域”
----下一页----
客户2送货信息
客户2订单信息
------下一页---
客户2订单信息继续(这可能只有几行,可能会在下面留下一个大的空白区域)
“这里有一些空白”
----下一页---
客户3 ......
当我treid输出普通html然后打印页面时,页面全部乱了,所以我解决了它生成PDF(我正在使用MPDF53)并且存在我的问题。
问题是生成PDF需要很长时间并占用大量系统资源。我已经不得不增加服务器执行时间以使其成功运行(默认为30秒)。现在,随着客户的增长,列表将继续增长,执行时间也将继续增长。如果100个客户列表超过30秒,我想知道当它达到1000或更多时它会是什么。
打印页面本身不包含任何图形,并且sql查询生成得相当快(这是因为当我输出为html时,页面会很快加载)。
是否有任何替代方法可以在html文档中使用分页符,这样当我打印此页面时,它会正确地跟随该分页符,或者任何其他可以加快pdf生成的方式,或者我只需要忍受较长的执行时间
编辑:即使使用分页符,仅使用html文档的一个问题是将其保存以供以后记录或引用。
由于
答案 0 :(得分:4)
多年前我遇到了同样的问题,最终依赖于CSS page-break-after属性(有关详细信息,请参阅here)。您可以尝试使用HTML生成页面,并将page-break-after:always
添加到包含客户信息的div中。
我不会依赖于此在所有用户和平台之间实现高度可靠的兼容性,但如果它是内部应用程序,那么您可能会指定他们需要使用现代版本的Firefox,Chrome或IE浏览器。
答案 1 :(得分:0)
1)您可以尝试使用替代方法生成PDF:Convert HTML + CSS to PDF with PHP?和Which one is the best PDF-API for PHP?
2)您可以考虑使用LaTeX:http://www.mayer.dial.pipex.com/tex.htm