C#: 使用 DinkToPdf 把 HTML 轉成 PDF 吧
最近做的一項需求是要把 HTML 轉換成 PDF,過程中決定使用 DinkToPdf 來處理這一段。
考慮到現在拿到的一些文件模板都是 HTML 檔了,感覺以後會蠻常碰到這個場景,決定來筆記一篇,給未來的我複製貼上。
環境準備
首先,當然是要先到 Nuget 安裝這篇的主角:DinkToPdf
由於 DinkToPdf 只負責包裝給 C# 這段,實際上要產出 PDF 還得用到 wkhtmltopdf 這個工具,因此還需要先弄到 wkhtmltopdf 的檔案。
不過作者也知道大家不是很想另外跑去找,所以 wkhtmltopdf 的組件檔案可以直接從 DinkToPdf 的 Repo 拿。但要記得要按照作業系統下載對應的 wkhtmltopdf 檔案:
- Windows => libwkhtmltox.dll
- Linux => libwkhtmltox.so
- macOS => libwkhtmltox.dylib
但全部都載也不會有人阻止你就是了。
最後把 libwkhtmltox 放到專案的根目錄底下,DinkToPdf 就呼叫得到囉!
(問就是魔法,不服的自己去啃 P/Invoke)