程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#導出HTML到PDF組件 Pechkin,

C#導出HTML到PDF組件 Pechkin,

編輯:C#入門知識

C#導出HTML到PDF組件 Pechkin,


C#導出PDF功能是開發中經常遇到的功能,我們采用第三方的組件,比如 iTextSharp, aspose等,還能搜到一些開源的類庫,

但是對於一些內容復雜樣式豐富的PDF,我們希望通過傳入一個URL直接生成一個PDF,並且不能與網頁原版差異太大,Pechkin倒是不錯,相對來說差異很小。

 

在 Nuget 管理器中搜索“Pechkin”,請選擇 CPechkin For .Net20+,這個組件是作者在 Pechkin 基礎上修改的,剔除了 Common.Loging 依賴,描述中說項目必須是x86編譯,但我發現,只有Web項目必須是x86編譯(IIS應用程序池好像還要設置成x86),否則運行會報錯,Windows Service, Windows Form項目可以默認 Any CPU

包加載完畢後,會在項目根目錄下放置幾個DLL,這些是 Pechkin 依賴的,如果想刪除,請先將這幾個DLL拷貝到bin下

編譯後,BIN下面有7個相關的DLL,這就是 Pechkin 的全部

調用代碼很簡單,兩行就搞定了,SetMargins 設設置PDF的頁邊距。

Pechkin.Synchronized.SynchronizedPechkin sc = new Pechkin.Synchronized.SynchronizedPechkin(new Pechkin.GlobalConfig().SetMargins(new System.Drawing.Printing.Margins(20, 20, 20, 20)));
byte[] buf = sc.Convert(new Uri(previewUrl));

var ms = new System.IO.MemoryStream(buf); var fn = string.Format("report_{0}.pdf", reportNo); Logger.Instance.WriteLine("Generate a pdf from url {0}", previewUrl); return new List<System.Net.Mail.Attachment> { new System.Net.Mail.Attachment(ms, fn, "application/pdf") };

 

得到一個 byte[]後,你可以寫入一個文件產生一個PDF。我在代碼中寫入一個MemoryStream,然後加入郵件的附件發送,很方便。

Pechkin也支持傳入一段HTML代碼,生成一個PDF。

 

再看生成出來的PDF,左邊是PDF,右邊是原版網頁,差別不大,就是表格的背景色丟失。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved