对于带有分页符的动态生成文档,替代PDF

时间:2012-03-12 00:57:10

标签: php

我有一个网站,以客户信息和他们一天订购的东西的形式处理大量数据。现在,由于这个特定的网站有数百个客户端,每天每个客户都有5到20个订单。

网站的所有者想要一个页面,其中包含客户交付信息以及每个单独页面中的订单列表,以便他们可以打印并将其粘贴在包裹上。但是,每个新客户端信息都需要在新页面中开始。

enter image description here

例如:

- 首页---

客户1送货信息

客户1订单信息

“如果订单信息很短,这里有一些空白区域”

----下一页----

客户2送货信息

客户2订单信息

------下一页---

客户2订单信息继续(这可能只有几行,可能会在下面留下一个大的空白区域)

“这里有一些空白”

----下一页---

客户3 ......


当我treid输出普通html然后打印页面时,页面全部乱了,所以我解决了它生成PDF(我正在使用MPDF53)并且存在我的问题。

问题是生成PDF需要很长时间并占用大量系统资源。我已经不得不增加服务器执行时间以使其成功运行(默认为30秒)。现在,随着客户的增长,列表将继续增长,执行时间也将继续增长。如果100个客户列表超过30秒,我想知道当它达到1000或更多时它会是什么。

打印页面本身不包含任何图形,并且sql查询生成得相当快(这是因为当我输出为html时,页面会很快加载)。

是否有任何替代方法可以在html文档中使用分页符,这样当我打印此页面时,它会正确地跟随该分页符,或者任何其他可以加快pdf生成的方式,或者我只需要忍受较长的执行时间

编辑:即使使用分页符,仅使用html文档的一个问题是将其保存以供以后记录或引用。

由于

2 个答案:

答案 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