2011-09-25 156 views
5

我一直無法找到關於同一主題的幾篇文章的問題的答案,這就是爲什麼我會在這裏問更具體的問題。wkhtmltopdf vs fpdf以及關於使用和性能的問題(HTML to PDF)

我的問題是關於wkhtmltopdf和fpdf。我需要其中一個來創建1頁的發票(真正的基本設計)和1頁的報告(基本設計以及)非常小的PDF文檔。

我讀過,大多數人推薦wkhtmltopdf,因爲它的性能,但對於小的1頁文件它真的有區別vs fpdf?它是否真的減少了內存消耗?更快?

我知道這是一個愚蠢的問題,但我也需要知道wkhtmltopdf是否可以一次執行多次。我的意思是,如果我的網站上有1000個用戶試圖同時以PDF格式保存他們的發票?有沒有限制,它是如何工作的?我知道fpdf是一個php類,所以我不必爲此擔心(我只需要正確的php.ini配置)。

你會建議什麼?對於小型PDF文檔而言,高性能同時能夠處理大量請求。

還有其他的選擇嗎?

謝謝你的幫助!

回答

9

簡短的回答是肯定的 - 你可以同時創建多個wkhtmltopdf實例,每個實例將自己的html頁面轉換爲pdf。但是,wkhtmltopdf是作爲一個操作系統進程運行的,這意味着如果1000個用戶同時查看他們的發票,則1000個wkhtmltopdf進程將在服務器中產生,這可能不是您想要的。

另一方面,FPDF作爲PHP運行時內的Web服務器進程的一部分運行,並且不會受到此限制。如果您創建的是小型甚至是大型發票,我會建議您使用FPDF,因爲使用FPDF創建發票相當容易。您不僅可以對PDF頁面佈局進行很多控制,還可以在以後的維護/升級過程中節省時間。

wkhtmltopdf遇到的問題之一是分頁。 Wkhtmltopdf不會像您期望的那樣破壞您的頁面。例如,一行文本可能會在兩頁之間分割 - 一行文本的上半部分出現在一頁的末尾,下半部分出現在下一頁的開頭。爲了避免這種行爲,你必須在你的html頁面明智地設置css屬性page-break-after或page-break-,這在某些時候可能很難,因爲你不確定頁面會在哪裏破壞。

+0

謝謝Indra,那是我正在尋找的答案,並且感謝您的信息/細節。 – Mike