2016年7月21日 星期四

C# 網頁轉PDF

出處

[C#] 網頁Html轉PDF檔(一行程式碼解決)

[C#] 網頁Html轉PDF檔(一行程式碼解決)
網頁轉PDF檔做法很多(Convert HTML to PDF in .NET)
這邊紀錄一下老外最多人加分的那篇做法,使用wkhtmtopdf(採GPL授權)可以省很多程式碼

找installer.exe下載,這邊Demo我是下載wkhtmltopdf-0.9.9-installer.exe
下載完後執行安裝它
image
image
選擇要安裝的路徑
image
安裝完成
image
(如果要解除安裝的話,就到剛剛安裝的資料夾下找uninstall.exe執行即可)

接著看它的原始使用方式
在安裝路徑下有個wkhtmltopdf.exe檔
到命令提示字元(開始→執行→cmd)
輸入
image
這邊就抓中國MSDN論壇網頁轉PDF為例
按下Enter轉換完成
image

打開剛剛轉換完成的PDF檔
image
該文字的地方就是文字,該圖片的地方就是圖片,該超連結的地方就是超連結

既然知道底層使用方式,那就可以使用
第一個參數傳執行檔路徑,第二個傳參數(URL和PDF檔的存放路徑)
如下:

    protected void Button1_Click(object sender, EventArgs e)
    {
                                                                                                   //因為是兩個argument,所以記得要空格
        System.Diagnostics.Process.Start(@"D:\wkhtmltopdf\wkhtmltopdf.exe", @"http://msdn.microsoft.com/zh-cn D:\myFileName.pdf");
        
    }

此小工具不會像WinForm的WebBrowser控制項一樣會共用IE瀏覽器的Cookie
而且要抓的網頁來源不一定要URL,也可以像這樣直接抓本機上的Html檔轉PDF

    protected void Button1_Click(object sender, EventArgs e)
    {
        System.Diagnostics.Process.Start(@"D:\wkhtmltopdf\wkhtmltopdf.exe", @"D:\index.html D:\myFileName.pdf");
    }
只是抓本機的Html轉成PDF後,圖片會不見這點要注意

沒有留言:

張貼留言