private void iTextSharp(string html) { System.Web.HttpContext.Current.Response.ContentType = "application/pdf"; System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=BookingDetails.pdf"); System.Web.HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache); Document pdfDoc = new Document(new Rectangle(922, 1296), 7f, 7f, 7f, 0f); PdfWriter writer = PdfWriter.GetInstance(pdfDoc, System.Web.HttpContext.Current.Response.OutputStream); pdfDoc.Open(); HtmlPipelineContext htmlContext = new HtmlPipelineContext(null); htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory()); ICssFile cfile = new CssFileImpl(); ICSSResolver cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(false); cssResolver.AddCssFile(System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath + @"App_Data\PDF.all.min.css", true); //Pipeline IPipeline pipeline = new CssResolverPipeline(cssResolver, new HtmlPipeline(htmlContext, new PdfWriterPipeline(pdfDoc, writer))); //XMLWorker XMLWorker worker = new XMLWorker(pipeline, true); XMLParser parser = new XMLParser(); parser.AddListener(worker); using (TextReader sr = new StringReader(html)) { parser.Parse(sr); } parser.Flush(); pdfDoc.Close(); System.Web.HttpContext.Current.Response.Write(pdfDoc); System.Web.HttpContext.Current.ApplicationInstance.CompleteRequest(); }
/// <summary> /// ExecuteResult /// </summary> /// <param name="context"></param> public override void ExecuteResult(ControllerContext context) { context.HttpContext.Response.Clear(); context.HttpContext.Response.ContentType = "application/pdf"; if (Download) context.HttpContext.Response.AddHeader("content-disposition", "attachment; filename=" + FileName); Html = RenderRazorViewToString(context); Format(context.HttpContext); using (var document = new Document(Settings.PageSize, Settings.Margin.Left, Settings.Margin.Right, Settings.Margin.Top, Settings.Margin.Bottom)) { var memoryStream = new MemoryStream(); TextReader textReader = new StringReader(Html); var pdfWriter = PdfWriter.GetInstance(document, memoryStream); var htmlPipelineContext = new HtmlPipelineContext(null); var cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(false); document.Open(); FontFactory.RegisterDirectories(); htmlPipelineContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory()); foreach (var styleSheet in StyleSheets) { cssResolver.AddCssFile(context.HttpContext.Server.MapPath(styleSheet), true); } var pipeline = new CssResolverPipeline(cssResolver, new HtmlPipeline(htmlPipelineContext, new PdfWriterPipeline(document, pdfWriter))); var worker = new XMLWorker(pipeline, true); var xmlParse = new XMLParser(true, worker); xmlParse.Parse(textReader); xmlParse.Flush(); document.Close(); document.Dispose(); context.HttpContext.Response.BinaryWrite(memoryStream.ToArray()); } context.HttpContext.Response.End(); context.HttpContext.Response.Flush(); }