前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#编写 HTML生成PDF

C#编写 HTML生成PDF

原创
作者头像
用户7705674
修改2021-11-03 09:49:41
1.6K0
修改2021-11-03 09:49:41
举报
文章被收录于专栏:css小迷妹

html中

<body>     <div style="text-align:center;">     <iframe id="pdframe" width="900px;" height="850px;" name="pdframe" src="../dl/NOQRS.htm"             frameborder="no" border="0" marginwidth="0" marginheight="0" scrolling="no" allowtransparency="yes">     </iframe>     </div>     <br />     <table border="0" align="center" cellpadding="0" cellspacing="0" class="wd noprint">         <tr>             <td align="right" height="30">             </td>         </tr>         <tr>             <td align="right" height="50">                 <a id="dc_a" class="dc" href="javascrpit:void(0)" target="_blank">                     <img src="../../images/dc.jpg" border="0" width="128" height="43" /></a> <a id="dy_a"                         class="dy" href="javascrpit:void(0)" onclick="dyqrs()">                         <img src="../../images/dy.jpg" border="0" width="128" height="43" /></a>             </td>         </tr>     </table> </body>

js里面:

 $(function () {     $.ajax({         type: "GET",         url: "/DLGL/GetDLZWQRSBH",         cache: false,         dataType: "json",         success: function (data) {             if (data.success) {                 var s = "../DL/DL_ZWFYQRSPDF.htm?dwbh=" + data.dwbh;                 var ss = "/Tools/HtmlToPdf?url=DL/DL_ZWFYQRSPDF.htm?dwbh=" + data.dwbh;                 $("#pdframe").attr("src", s);                 $("#dc_a").attr("href", ss);             }         }     }); }); function dyqrs() {     window.print(); }

控制器中

        public JsonResult HtmlToPdf(string url)        {

            bool success = true;

            string dwbh = url.Split('?')[1].Split('=')[1];

            //CommonBllHelper.CreateUserDir(dwbh);

            url = Request.Url.Host + "/html/" + url;

            string guid = DateTime.Now.ToString("yyyyMMddhhmmss");

            string pdfName = guid + ".pdf";

            //string path = Server.MapPath("~/kehu/" + dwbh + "/pdf/") + pdfName;

            string path = "D:\Temp\" + pdfName;

            try

            {

                if (string.IsNullOrEmpty(url) || string.IsNullOrEmpty(path))

                    success = false;

                string str = Server.MapPath("~\tools\wkhtmltopdf\bin\wkhtmltopdf.exe");

                Process p = System.Diagnostics.Process.Start(str, url + " " + path);

                p.WaitForExit();

                if (!System.IO.File.Exists(str))

                    success = false;

               if (System.IO.File.Exists(path))

                {

                    FileStream fs = new FileStream(path, FileMode.Open);

                    byte[] bytes = new byte[(int)fs.Length];

                    fs.Read(bytes, 0, bytes.Length);

                    fs.Close();

                    if (Request.UserAgent != null)

                    {

                        string userAgent = Request.UserAgent.ToUpper();

                        if (userAgent.IndexOf("FIREFOX", StringComparison.Ordinal) <= 0)

                        {

                                 Response.AddHeader("Content-Disposition",

                                               "attachment;  filename=" + HttpUtility.UrlEncode(pdfName, Encoding.UTF8));

                        }

                        else

                        {

                            Response.AddHeader("Content-Disposition", "attachment;  filename=" + pdfName);

                        }

                    }

                    Response.ContentEncoding = Encoding.UTF8;

                    Response.ContentType = "application/octet-stream";

                    //通知浏览器下载文件而不是打开

                   Response.BinaryWrite(bytes);

                    Response.Flush();

                    Response.End();

                    fs.Close();

                    System.IO.File.Delete(path);

                }

                else

                {

                    Response.Write("文件未找到,可能已经被删除");

                    Response.Flush();

                    Response.End();

                }

            }

            catch (Exception ex)

            {

                success = false;

            }

          var rlt = new { success = success };

       return Json(rlt, JsonRequestBehavior.AllowGet);

        }

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档