ASP.NET MVC: render view to generate PDF: use iTextSharp or better solution?

后端 未结 3 1323
野性不改
野性不改 2021-02-04 21:59

I display receipt in both HTML and printer-friendly version. HTML version does jQuery tabs, etc, while printer-friendly has zero scripts and external dependencies, no master lay

3条回答
  •  一整个雨季
    2021-02-04 22:12

     public class Pdf : IPdf
        {
            public FileStreamResult Make(string s)
            {
                using (var ms = new MemoryStream())
                {
                    using (var document = new Document())
                    {
                        PdfWriter.GetInstance(document, ms);
                        document.Open();
                        using (var str = new StringReader(s))
                        {
    
                            var htmlWorker = new HTMLWorker(document);
    
                            htmlWorker.Parse(str);
                        }
                        document.Close();
                    }
    
                    HttpContext.Current.Response.ContentType = "application/pdf";
                    HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=MyPdfName.pdf");
                    HttpContext.Current.Response.Buffer = true;
                    HttpContext.Current.Response.Clear();
                    HttpContext.Current.Response.OutputStream.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length);
                    HttpContext.Current.Response.OutputStream.Flush();
                    HttpContext.Current.Response.End();
    
                    return new FileStreamResult(HttpContext.Current.Response.OutputStream, "application/pdf");
                }
            }
        }
    

提交回复
热议问题