把頁面導出生成pdf,這里用到第三方的工具,使用方法中文文檔沒有找到,網上也沒找到網友詳細的神作。沒有深入研究,所以也不贅述了,當然最基本的使用大多數也夠用了,詳細參數的官網也沒介紹,大家使用的時候,可以通過命令行來查看參數幫助 wkhtmltopdf.exe --help
簡單使用,不說了,貼代碼。
/// <summary> /// html轉換成pdf /// </summary> public class HtmlToPDFUtil { /// <summary> /// HTML生成PDF /// </summary> /// <param name="url">地址</param> /// <param name="path">PDF存放路徑</param> public static bool HtmlToPdf(string url, string path) { try { if (string.IsNullOrEmpty(url) || string.IsNullOrEmpty(path)) return false; Process p = new Process(); string str = System.Web.HttpContext.Current.Server.MapPath("/HtmlToPdf/Tools/wkhtmltopdf-0.8.3.exe"); if (!System.IO.File.Exists(str)) return false; p.StartInfo.FileName = str; p.StartInfo.Arguments = " --outline " + url + " " + path; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true; p.StartInfo.CreateNoWindow = true; p.Start(); //p.WaitForExit(); System.Threading.Thread.Sleep(500); return true; } catch (Exception ex) { throw ex; } } }
調用:
string path = "E://3.pdf"; HtmlToPDFUtil.HtmlToPdf(Request.Url.AbsoluteUri, path);
好了,就這些了。其他的復雜使用,大家自行研究。
贅述說下,這里涉及到的一個參數--outline,這個是生產目錄的。目錄的生成,根據頁面中的標題標簽<h1>到<h6>.
額,對了,這個第三方有多種版本好像,還有一種安裝使用的貌似,看網友有提到,沒研究。需要使用的,自行查閱。
完畢。
============================
補充一篇大家使用討論的,對於各種情況的使用很有幫助。
http://code.google.com/p/wkhtmltopdf/wiki/Usage
如若轉換的為http請求,且帶多個參數,失敗的情況下,可以把請求地址加雙引號;
且pdf輸出地址不支持中文目錄,暫時沒找到解決方法。
輸出地址可以寫相對路徑地址,這個目前感覺不是很好掌握。一般是相對於運行該命令的wkhtmltopdf所在的位置。
其他文章:
http://www.dotblogs.com.tw/shadow/archive/2011/09/28/38072.aspx