幾百萬條的報表咋打印?

打印量這麼大的報表,打印機可能會喫不消。可以算算打印 100 萬行記錄是什麼情況。

假設一頁紙能打印 50 行記錄(這已經算多了),100 萬行記錄就意味着 2 萬頁紙。2 萬頁的連續打印,有多少打印機能做到這個指標?你的用戶真有這樣的設備嗎?2 萬頁紙大概有 2 米厚,什麼打印機能把這些紙放進去?商用快速打印機一分鐘也就 30 幾頁,就按 50 頁 / 分鐘算,2 萬頁也需要 7 個鐘頭!作爲一個機械設備能連續工作這麼久是不容易的。

當然,如果是實際業務需求還得實現,有兩種思路:

一、如果自己實現打印,因爲打印和瀏覽不同,一般是從頭到尾過一遍就行了,過程中沒有翻頁的需求。這樣,只要流式讀入數據逐步生成打印頁就可以了,不會發生內存溢出的問題。

但這個做法仍然比較麻煩,特別是現代瀏覽器加強了安全控制,applet 等插件經常被禁用,而要採用 flash 或 PDF 方式來實現。用 flash 可以做到流式讀取,但並不簡單,還會導致插件與後臺耦合性過高,影響安全性;而 PDF 方式就是一次性生成一個文檔,沒辦法實現這種機制了。

二、如果用報表工具,就要看看工具本身支不支持了,有的報表工具可以支持報表異步分頁呈現、報表流式導出、流式打印這些功能,直接用比較方便,像這個: 海量清單與分組報表的實現 ,目前測過幾百萬條的報表導出打印都可以,更大數據量的要自己再測測了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章