asp.net mvc实现html转PDF

说明:

  1. 当传递的参数字符过多时需将其压缩才可以进行get的请求;
  2. _domain是配置文件中的配置:<add key="Domain" value="http://localhost/hotelSys" /> ;
  3. _hqPdfFilePath同样是配置文件的PDF保存路径;
  4. HtmlToPdf.exe是一个程序,可以前往下载,下载地址:  https://download.csdn.net/download/qq_35481871/12197661
  5. 在asp.net mvc中如何用return File实现下载文件时,需要注意的是将下载文件名进行编码Url.Encode(downName),否则可能出现错误或文件名乱码
        protected static readonly string _domain = ConfigurationManager.AppSettings["Domain"];

        /// <summary>
        /// 下载Pdf行程单
        /// </summary>
        /// <param name="RouteBase"></param>
        /// <param name="RouteList"></param>
        /// <param name="DownName"></param>
        /// <returns></returns>
        [HttpPost]
        public ActionResult DownSchedulePdf(string RouteBase, string RouteList, string DownName)
        {
            var downName = DownName + ".pdf";//下载名称
            var pdfname = "hq" + DateTime.Now.ToString("HHmmssffff") + ".pdf";//保存pdf名称            
            var _pdfFilePath = _hqPdfFilePath + pdfname;//pdf文件路径
            try
            {
                #region 压缩字符串
                byte[] b1 = Compress(RouteBase);
                var routeBase = Convert.ToBase64String(b1);

                byte[] b2 = Compress(RouteList);
                var routeList = Convert.ToBase64String(b2);
                #endregion

                var pageUrl = "";
                if (_mvcTest == "Y")
                {
                    pageUrl = "http://localhost" + Url.Action("SchedulePdf", "DownLoad", new { RouteBase = routeBase, RouteList = routeList });
                }
                else
                {
                    pageUrl = _domain + Url.Action("SchedulePdf", "DownLoad", new { RouteBase = routeBase, RouteList = routeList });
                }

                //判断是否有该路径 没有则创建
                if (!Directory.Exists(_hqPdfFilePath))
                {
                    Directory.CreateDirectory(_hqPdfFilePath);
                }
                
                #region 调用html转pdf接口
                //程序
                string str = Server.MapPath("~/Exes/HtmlToPdf.exe");
                //参数
                var arguments = " \"" + pageUrl + "\" " + _pdfFilePath;
                Process p = Process.Start(str, arguments);
                p.StartInfo.UseShellExecute = false;
                p.StartInfo.RedirectStandardInput = true;
                p.StartInfo.RedirectStandardOutput = true;
                p.StartInfo.RedirectStandardError = true;
                p.WaitForExit();//等待进程关闭或退出执行以下步骤
                p.Close();
                #endregion
            }
            catch (Exception e)
            {
                Log.InfoFormat("error:{0}", e.Message);
            }
            return File(_pdfFilePath, "text/plain", Url.Encode(downName));
        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET MVC4开发指南是一本非常重要的教程书籍,它可以帮助开发人员学习和掌握ASP.NET MVC4框架的所有关键知识和技能。这本书的内容非常丰富和全面,涵盖了ASP.NET MVC4的各个方面,包括控制器、视图、模型、路由、数据访问、身份验证和授权等等。 这本书的主要特点之一是非常详细和易于理解的说明。它使用了简单明了的语言和丰富的实例,帮助读者从基础开始逐步学习ASP.NET MVC4的各个方面,同时也提供了一些高级和进阶的知识点供读者深入了解。读者可以通过这本书系统地学习和掌握ASP.NET MVC4的开发技巧和最佳实践。 另一个重要的特点是这本书注重实战和实际应用。它不仅向读者提供基本概念和理论知识,还通过案例和实例向读者展示如何将ASP.NET MVC4应用到实际项目。通过这种方式,读者可以更好地理解ASP.NET MVC4的应用场景和开发流程,并能够独立地完成自己的项目开发。 此外,这本书还提供了丰富的附录和参考资料,包括常见问题解答、代码示例和扩展资源等等。这些附录和参考资料可以帮助读者更深入地了解ASP.NET MVC4的特性和用法,同时也提供了一些进一步学习和研究的方向。 总之,ASP.NET MVC4开发指南是一本非常有价值和实用的书籍,对于想要学习和掌握ASP.NET MVC4的开发人员来说,是一本不可或缺的指南。无论是初学者还是有一定经验的开发者,都可以从这本书获得很多有用的知识和经验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值