Stack trace looks like
[ObjectDisposedException: Unable to access the private stream.]
System.IO .__ Error.StreamIsClosed () +53
System.IO.MemoryStream.Read (buffer [], Int32 offset, Int32 count) +11411219 System.Web.Mvc.FileStreamResult.WriteFile (HttpResponseBase response) +81 System.Web.Mvc.FileResult.ExecuteResult (ControllerContext context) +168
System.Web.Mvc.ControllerActionInvoker.InvokeActionResult (ControllerContext controllerContext, ActionResult actionResult) +13
after calling
//Byte[] bytes; using ( var ms = new MemoryStream() ) { using ( var doc = new Document() ) { using ( var writer = PdfWriter.GetInstance(doc, ms) ) { doc.Open(); //var example_html = @"<p>This <em>is </em><span class=""headline"" style=""text-decoration: underline;"">some</span> <strong>sample <em> text</em></strong><span style=""color: red;"">!!!</span></p>"; var example_html = System.IO.File.ReadAllText(Path.Combine(Server.MapPath("~/EmailTemplates"), "template.html")); var example_css = @".headline{font-size:200%}"; using ( var srHtml = new StringReader(example_html) ) { iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, srHtml); } using ( var msCss = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(example_css)) ) { using (var msHtml = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(example_html))) { iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, msHtml, msCss); } } doc.Close(); } } //bytes = ms.ToArray(); return File(ms, "application/pdf", "Test.pdf"); }
I read MemoryStream - I canβt access the private stream , but this is not the same scenario because I do not use StreamReader
Edit: Still not working with
[OutputCache(NoStore = true, Duration = 0)] public ActionResult Run() { Byte[] bytes; var ms = new MemoryStream(); try { using (var doc = new Document()) { using (var writer = PdfWriter.GetInstance(doc, ms)) { writer.CloseStream = false; doc.Open(); var example_html = @"<p>This <em>is </em><span class=""headline"" style=""text-decoration: underline;"">some</span> <strong>sample <em> text</em></strong><span style=""color: red;"">!!!</span></p>"; //var example_html = System.IO.File.ReadAllText(Path.Combine(Server.MapPath("~/EmailTemplates"), "LinkEmailTemplate.html")); var example_css = @".headline{font-size:200%}"; using (var msCss = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(example_css))) { using (var msHtml = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(example_html))) { iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, msHtml, msCss); } } doc.Close(); } } bytes = ms.ToArray(); ms.Position = 0; return File(ms, "application/pdf", "Test.pdf"); } catch { ms.Dispose(); throw; } }
source share