1、需求
前段時間有個需求,要求把網頁生成pdf,找了各種插件,才決定使用這個TuesPechkin,這個是后臺采用C#代碼進行生成
2、做法
我要做的是一個比較簡單的頁面,采用MVC系結,資料動態加載,頁面上給個按鈕,點擊后請求后臺介面,便可以生成pdf檔案了
3、實作方式
引入兩個相關DLL,TuesPechkin.Wkhtmltox.XXX 根據你當前的系統來選擇對應的DLL(一般添加前兩個就行),

4、生成PDF代碼段
先在后臺將指定HTML頁生成為string字串,然后呼叫如下方法即可
/// <summary>
/// 生成pdf
/// </summary>
/// <param name="htmlStr">生成內容</param>
/// <param name="path">生成地址</param>
private static void ConvertHtmlTextToPdf(string htmlStr, string filepath)
{
if (!Directory.Exists(filepath)) //不存在檔案夾,創建
Directory.CreateDirectory(filepath); //創建新的檔案夾
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".pdf";
var path = filepath + fileName;
var document = new HtmlToPdfDocument
{
GlobalSettings =
{
ProduceOutline = true,
DocumentTitle = "標題",
PaperSize = PaperKind.A4, // Implicit conversion to PechkinPaperSize
Margins =
{
All=0,
Unit = Unit.Centimeters
}
},
Objects =
{
new ObjectSettings
{
HtmlText =htmlStr,
WebSettings =new WebSettings
{
DefaultEncoding="UTF-8",
LoadImages=true,
}
}
},
};
byte[] buf = GetConverter().Convert(document);
//直接把result二進制資料寫入檔案流
FileStream fs = new FileStream(path, FileMode.OpenOrCreate);
fs.Write(buf, 0, buf.Length);
fs.Close();
IToolset toolset = new PdfToolset();
toolset.Unload();
}
5、備注
此插件對css樣式支持比較友好,但是不支持使用外部樣式表,必須為嵌入樣式,而且生成出來的Pdf整體版面偏小,需要微調樣式,細心一點
6、最后來一張效果圖

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/50926.html
標籤:C#
上一篇:OleDbDataAdapter.Update引發錯誤OleDbException: 'Parameter ?_1 has no default value.'
下一篇:求助!!!!
