国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

C#導(dǎo)出HTML到PDF組件Pechkin

2019-11-14 13:31:14
字體:
供稿:網(wǎng)友

C#導(dǎo)出PDF功能是開發(fā)中經(jīng)常遇到的功能,我們采用第三方的組件,比如 iTextSharp, aspose等,還能搜到一些開源的類庫,

但是對(duì)于一些內(nèi)容復(fù)雜樣式豐富的PDF,我們希望通過傳入一個(gè)URL直接生成一個(gè)PDF,并且不能與網(wǎng)頁原版差異太大,Pechkin倒是不錯(cuò),相對(duì)來說差異很小。

 

在 Nuget 管理器中搜索“Pechkin”,請(qǐng)選擇 CPechkin For .Net20+,這個(gè)組件是作者在 Pechkin 基礎(chǔ)上修改的,剔除了 Common.Loging 依賴,描述中說項(xiàng)目必須是x86編譯,但我發(fā)現(xiàn),設(shè)置成 Any CPU也可以,但是如果是Web項(xiàng)目,部署到IIS后,應(yīng)用程序池高級(jí)設(shè)置中必須選擇啟用32位應(yīng)用程序,否則運(yùn)行會(huì)報(bào)錯(cuò)。

包加載完畢后,會(huì)在項(xiàng)目根目錄下放置幾個(gè)DLL,這些是 Pechkin 依賴的,如果想刪除,請(qǐng)先將這幾個(gè)DLL拷貝到bin下

編譯后,BIN下面有7個(gè)相關(guān)的DLL,這就是 Pechkin 的全部

調(diào)用代碼很簡(jiǎn)單,兩行就搞定了,SetMargins 設(shè)設(shè)置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") };

 

得到一個(gè) byte[]后,你可以寫入一個(gè)文件產(chǎn)生一個(gè)PDF。我在代碼中寫入一個(gè)MemoryStream,然后加入郵件的附件發(fā)送,很方便。

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

 

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

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 河间市| 浠水县| 仪陇县| 囊谦县| 缙云县| 泾阳县| 四川省| 洪湖市| 南昌县| 金川县| 台江县| 塘沽区| 介休市| 中超| 锡林郭勒盟| 荣成市| 南澳县| 友谊县| 若羌县| 桂阳县| 桑植县| 黑山县| 开鲁县| 林州市| 和静县| 南宫市| 德保县| 望城县| 濮阳市| 望江县| 舟山市| 永泰县| 隆回县| 辽阳县| 青龙| 惠东县| 广汉市| 吴堡县| 通河县| 璧山县| 樟树市|