几百万条的报表咋打印?

打印量这么大的报表,打印机可能会吃不消。可以算算打印 100 万行记录是什么情况。

假设一页纸能打印 50 行记录(这已经算多了),100 万行记录就意味着 2 万页纸。2 万页的连续打印,有多少打印机能做到这个指标?你的用户真有这样的设备吗?2 万页纸大概有 2 米厚,什么打印机能把这些纸放进去?商用快速打印机一分钟也就 30 几页,就按 50 页 / 分钟算,2 万页也需要 7 个钟头!作为一个机械设备能连续工作这么久是不容易的。

当然,如果是实际业务需求还得实现,有两种思路:

一、如果自己实现打印,因为打印和浏览不同,一般是从头到尾过一遍就行了,过程中没有翻页的需求。这样,只要流式读入数据逐步生成打印页就可以了,不会发生内存溢出的问题。

但这个做法仍然比较麻烦,特别是现代浏览器加强了安全控制,applet 等插件经常被禁用,而要采用 flash 或 PDF 方式来实现。用 flash 可以做到流式读取,但并不简单,还会导致插件与后台耦合性过高,影响安全性;而 PDF 方式就是一次性生成一个文档,没办法实现这种机制了。

二、如果用报表工具,就要看看工具本身支不支持了,有的报表工具可以支持报表异步分页呈现、报表流式导出、流式打印这些功能,直接用比较方便,像这个: 海量清单与分组报表的实现 ,目前测过几百万条的报表导出打印都可以,更大数据量的要自己再测测了。

猜你喜欢

转载自www.cnblogs.com/xiaohuihui-11/p/13163249.html
今日推荐