LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C#.NET采用TuesPechkin導(dǎo)出生成WEB頁面的PDF文件

admin
2023年5月15日 10:5 本文熱度 1298

1、需求

前段時(shí)間有個(gè)需求,要求把網(wǎng)頁生成pdf,找了各種插件,才決定使用這個(gè)TuesPechkin,這個(gè)是后臺(tái)采用C#代碼進(jìn)行生成。


2、做法

我要做的是一個(gè)比較簡單的頁面,采用MVC綁定,數(shù)據(jù)動(dòng)態(tài)加載,頁面上給個(gè)按鈕,點(diǎn)擊后請(qǐng)求后臺(tái)接口,便可以生成pdf文件了。


3、實(shí)現(xiàn)方式

引入兩個(gè)相關(guān)DLL,TuesPechkin.Wkhtmltox.XXX  根據(jù)你當(dāng)前的系統(tǒng)來選擇對(duì)應(yīng)的DLL(一般添加前兩個(gè)就行):

 

4、生成PDF代碼段

先在后臺(tái)將指定HTML頁生成為string字符串,然后調(diào)用如下方法即可

        /// <summary>
        /// 生成pdf
        /// </summary>
        /// <param name="htmlStr">生成內(nèi)容</param>
        /// <param name="path">生成地址</param>
        private static void ConvertHtmlTextToPdf(string htmlStr, string filepath)
        {
            if (!Directory.Exists(filepath))  //不存在文件夾,創(chuàng)建
                Directory.createDirectory(filepath);  //創(chuàng)建新的文件夾
            var fileName = DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".pdf";
            var path = filepath + fileName;
            var document = new HtmlToPdfDocument
            {
                GlobalSettings =
                {
                    ProduceOutline = true,
                    DocumentTitle = "標(biāo)題",
                    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二進(jìn)制數(shù)據(jù)寫入文件流
            FileStream fs = new FileStream(path, FileMode.OpenOrcreate);
            fs.Write(buf, 0, buf.Length);
            fs.Close();
            IToolset toolset = new PdfToolset();
            toolset.Unload();  
        }


5、備注

此插件對(duì)css樣式支持比較友好,但是不支持使用外部樣式表,必須為嵌入樣式,而且生成出來的Pdf整體版面偏小,需要微調(diào)樣式,細(xì)心一點(diǎn)。


6、最后來一張效果圖


該文章在 2023/5/15 10:06:30 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
天天欢夜夜爽视频精品 | 亚洲一级淫片免费在线观看 | 一本大道香蕉大在线日韩 | 一级国产片一区二区三区 | 日韩欧美在线综合网另类 | 日韩免费AV在线播放网 |