Python 把html轉成pdf的方式

less than 1 minute read

最近有個project需要產出pdf的收據,想到遊覽器可以把網頁轉成pdf,第一時間想到的就是用html來排layout,然後再轉成pdf。

因為是一個後端服務,用的framework是Django,所以排版跟rendering 蠻順利就處理好了,棘手的反倒是html to pdf這個過程。

一開始用的是xhtml2pdf,結果轉出來的pdf layout整個跑掉,結果才發現可能需要follow 他們的format 來layout (Working with HTML)。

考量html 與css編寫的難易度與之後維護的effort,果斷棄坑xhtml2pdf的作法,經過survey找到pyhtml2pdf

pyhtml2pdf背後靠的是chrome webdrive來呼叫chrome來轉pdf,好處是chrome對於把css轉成pdf做得非常好XD,但缺點是server就要安裝chrome和chrome driver。

稍微比較一下,果斷的選擇pyhtml2pdf,轉出來的品質與維護的effort差太多了……

Updated: