TuesPechkin是以wkhtmltopdf為基礎的套件
能將HTML輕鬆轉為PDF檔
雖然許多瀏覽器都有提供類似的功能
但透過TuesPechkin可以做更多細節的設定
所以這篇先來介紹簡單的使用方法
首先至NuGet安裝以下兩個套件
程式碼如下
public class PDFConverter
{
/// <summary>
/// 轉換器
/// </summary>
private static IConverter Converter =
new ThreadSafeConverter(
new RemotingToolset<PdfToolset>(
new WinAnyCPUEmbeddedDeployment(
new TempFolderDeployment())));
/// <summary>
/// 取得PDF
/// </summary>
/// <returns></returns>
public static byte[] GetPDF(string url)
{
//建立欲轉換檔案
HtmlToPdfDocument document = new HtmlToPdfDocument();
//設定主體
ObjectSettings objSettings = new ObjectSettings()
{
//目標網頁
PageUrl = url
};
//加入主體設定
document.Objects.Add(objSettings);
//執行轉換
byte[] result = Converter.Convert(document);
return result;
}
}
建立轉換器的部分
裡面會講解轉換器各個設定的使用
Controller程式碼,這裡使用Google搜尋首頁當範例
//建立檔名
string filename = "test.pdf";
//取得PDF
byte[] pdf = PDFConverter.GetPDF("https://www.google.com.tw/");
//設定標頭
Response.AddHeader("Content-disposition", "attachment; filename=\"" + filename + "" + "\"");
//設定回傳媒體型別(MIME)
Response.ContentType = "application/pdf";
//取得Response的OutputStream
Stream stream = Response.OutputStream;
//寫入OutputStream
for (int i = 0; i < pdf.Length; i++)
{
stream.WriteByte(pdf[i]);
}
//送出Response
Response.End();
//也可以利用C#的ActionResult回傳
//return File(pdf, "application / pdf", filename);
執行結果
基本上只要有網址就可以轉成PDF檔了
下一篇會介紹一些細節的設定