公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#.NET將WEB頁面導出生成pdf文件(支持外部CSS樣式不缺失)

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

將html文本或者html網頁生成pdf,我常用的2種方式:TuesPechkin,wkhtmltopdf。

一、使用TuesPechkin轉pdf

首先引用TuesPechkin.dll,我使用的是1.0.3,也可以使用最新穩定版:

 

     /// <summary>
        /// 將網頁轉為pdf文件
        /// </summary>
        /// <param name="filePath">文件路徑/目錄</param>
        /// <param name="fileName">文件名</param>
        /// <param name="url">網頁url</param>
        public bool ConvertWebpageToPDF(string filePath, string fileName, string url)
        {
            if (Directory.Exists(filePath) == false)
            Directory.createDirectory(filePath);
            try
            {
                HtmlToPdfDocument htmlToPdfDocument = new HtmlToPdfDocument();
                GlobalSettings globalSettings = new GlobalSettings();
                globalSettings.ProduceOutline = new bool?(true);
                
                double width = 100; double.TryParse(txt_width.Text, out width);
                double height = 120; double.TryParse(txt_height.Text, out height);
                
                double proportion = 1.26;
                width /= proportion;
                height = Math.Floor(height / proportion);
                string Width = width.ToString(); string Height = height.ToString();
                globalSettings.PaperSize = new PechkinPaperSize(Width, Height);
                
                globalSettings.Margins.Top = 0;
                globalSettings.Margins.Right = 0;
                globalSettings.Margins.Bottom = 0;
                globalSettings.Margins.Left = 0;
                globalSettings.Margins.Unit = Unit.Centimeters;
                string pageUrl = url;
                ObjectSettings objectSettings = new ObjectSettings();
                double value = 1;
                objectSettings.HtmlText = string.Empty;
                objectSettings.PageUrl = pageUrl;
                objectSettings.LoadSettings.BlockLocalFileAccess = true;
                objectSettings.LoadSettings.ZoomFactor = new double?(value);
                objectSettings.WebSettings.PrintMediaType = new bool?(true);
                objectSettings.WebSettings.PrintBackground = new bool?(false);
                htmlToPdfDocument.GlobalSettings = globalSettings;
                htmlToPdfDocument.Objects.Add(objectSettings);
                IPechkin pechkin = Factory.create();
                byte[] array = pechkin.Convert(htmlToPdfDocument);
                string path = string.Empty;
                if (array == null)
                {
                     return false;
                }
                path = Path.Combine(filePath, fileName);
                using (FileStream fileStream = new FileStream(path, FileMode.create))
                {
                    fileStream.Write(array, 0, array.Length);
                    fileStream.Flush();
                    fileStream.Close();
                    FileStream fs = new FileStream(path, FileMode.Open);
                    byte[] file = new byte[fs.Length];
                    fs.Read(file, 0, file.Length);
                    fs.Close();
                    return true;
                }
            }
            catch (Exception ex)
            {
                    return false;
            }
        }

 

二、使用wkhtmltopdf轉pdf

wkhtmltopdf是一個插件,首先要下載https://wkhtmltopdf.org/downloads.html

下載后有使用說明:需要使用cmd安裝到本地目錄

public void wkhtmltopdf(string filePath, string fileName, string url)
        {
            Process p = new Process();
            
            string dllstr = AppDomain.CurrentDomain.BaseDirectory + "wkhtmltopdf\\wkhtmltopdf.exe";
            
            if (System.IO.File.Exists(dllstr))
            {                string savepath = Path.Combine(filePath, fileName);
                p.StartInfo.FileName = dllstr;
                StringBuilder paramsBuilder = new StringBuilder();
                paramsBuilder.Append("--page-width " + txt_width.Text + "mm ");
                paramsBuilder.Append("--zoom 1.2 ");
                paramsBuilder.Append("--disable-smart-shrinking ");
                paramsBuilder.Append("--page-height " + txt_height.Text + "mm ");
                paramsBuilder.Append("--margin-bottom 0mm ");
                paramsBuilder.Append("--margin-left 0mm ");
                paramsBuilder.Append("--margin-right 0mm ");
                paramsBuilder.Append("--margin-top 0mm ");
                paramsBuilder.AppendFormat("\"{0}\" \"{1}\"", url, savepath);
                p.StartInfo.Arguments = paramsBuilder.ToString();
                
                p.StartInfo.UseShellexecute = false;
                p.StartInfo.RedirectStandardInput = true;
                p.StartInfo.RedirectStandardOutput = true;
                p.StartInfo.RedirectStandardError = true;
                p.StartInfo.createNoWindow = true;
                p.Start();
                p.WaitForExit();
            }
        }

備注: 

以上2種方法生成pdf效果都非常好,css也能完美支持。

都是通過請求網頁url,將整個網頁生成pdf。

如果你是客戶端,只有html文本,沒有網頁,可以先用html文本在本地生成一個html文件,本地html文件也是可以生成的pdf的哦。


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

主站蜘蛛池模板: 91大神一区二区三区视频 | 国产一区二区三区日韩欧 | 爆爽久久久一区二区又大又黄又嫩 | 国产精品偷伦视频免费 | 国产欧美国产综合每日更新 | 国产无码精品 | 国内福利写真片视频在线观看 | 91九色国| 91人妻无码一区二区精品免费 | 国产成人无码一区a | 91热久久免费频精品黑人99 | 91狠狠色丁香婷婷综合久久 | 国产剧情自在拍精品在线播放 | 18禁免费无码无遮挡不卡网站 | 国产精品视频一区二区猎奇 | 丰满少妇人妻无码专区 | 国产精品久久久影视 | 国产成人免费ā片在线观看 | 国产三级电影网站 | 91久久精品一区二区三区 | 国产按摩推油一区二区三区在线 | 国产在线精品国自产拍影院同 | 国产黄a级三级三级看三级 国产黄a三级三级三级 | 国产女同在线播放 | 成人做色视频在 | 国产精品色哟哟视频网 | 国产盗摄精品一区二 | 精品国产一区二区三区日日嗨 | 国产亚洲欧洲人人网 | 91国偷自产中文字幕婷婷 | 国产成人在线第一 | 国产成人福利院免费观看 | 国产精品毛片一区 | 国产精彩视频一区二区三区 | 国产精品亚洲四区在线观看 | 国产成人无码精品一区 | 精品一区二区精品 | 国产成人+亚洲欧洲+综合 | 91在线精品无码秘入口九色 | 国产成人综合亚洲av成人专区 | 国产精品一区二区熟女不卡 |