如果給定足夠大的日期範圍,我有一份報告可以生成超過30,000條記錄。從HTML的一面來看,這麼大的結果集並不是問題,因爲我實現了一個分頁系統,在給定的時間將可見結果限制爲100。如何在生成PDF時使用PHP處理極大的字符串
一旦用戶按下「獲取PDF」按鈕,就會出現真正的問題。當發生這種情況時,我基本上重新運行報告中的部分數據(報告本身的結果存儲在'save'表中,因此不需要重新運行數據收集邏輯),並將結果存儲在名爲$html
的變量中。請記住,此變量現在包含30,000條數據記錄以及在PDF上正確格式化所需的HTML。一旦我創建了這個HTML字符串,我將它傳遞給TCPDF以嘗試爲用戶生成PDF文件。但是,不會生成PDF文件,它只是在沒有錯誤消息的情況下('生成PDf ...')對話消失,系統就像您從未要求它執行任何操作一樣。
通過測試,我發現問題在於傳入的$html
變量的大小。如果3K記錄下的報告,它工作正常。如果結果如此,報告的HTML端將會打印,而不是PDF。
有用的信息
- PHP 5.3
- TCPDF生成PDF(也試過PS2PDF)
- 腳本內存限制:500 MB
如何將你們處理這種規模生成此大小的PDF時的數據?
我傳入一個巨大的HTML字符串,TCPDF然後分裂成一個多頁PDF。我認爲問題不在於PDF生成器,而在於'$ html'變量的大尺寸。 – 2010-08-26 16:45:12
@Levi Hackwith:這沒有任何意義。 PDF可以像你想要的那樣大。如果PDF生成器在其輸入HTML過大時失敗,那麼這是生成器的問題。否則,只需減少HTML文件的大小並創建許多小型PDF,如shamittomar建議。儘管大多數桌面程序在創建100,000頁以上的PDF時沒有問題。 – 2010-08-26 17:04:42
因此,普遍認爲問題出在TCPDF內,而不是PHP本身? – 2010-08-26 17:47:46