I created a pdf file using iTextSharp when it created it automatically saves it to the location specified in my code on the server, and not on the client side, and, of course, without telling the user anything.
I need to send it to the client, and I need to call a dialog box to ask the user where he wants to save his pdf file.
How can i do this?
this is my pdf code:
using (MemoryStream myMemoryStream = new MemoryStream()) { Document document = new Document(); PdfWriter PDFWriter = PdfWriter.GetInstance(document, myMemoryStream); document.AddHeader("header1", "HEADER1"); document.Open(); //.......... document.Close(); byte[] content = myMemoryStream.ToArray(); // Write out PDF from memory stream. using (FileStream fs = File.Create(HttpContext.Current.Server.MapPath("~\\report.pdf"))) { fs.Write(content, 0, (int)content.Length); }
EDIT
this is an example of the result i want http://examples.extjs.eu/?ex=download
thanks to your answers, I changed my code to this:
HttpContext.Current.Response.ContentType = "application/pdf"; HttpContext.Current.Response.AppendHeader( "Content-Disposition", "attachment; filename=test.pdf"); using (MemoryStream myMemoryStream = new MemoryStream()) { Document document = new Document(); PdfWriter PDFWriter = PdfWriter.GetInstance(document, myMemoryStream); document.AddHeader("Content-Disposition", "attachment; filename=wissalReport.pdf"); document.Open(); //.......... document.Close(); byte[] content = myMemoryStream.ToArray(); HttpContext.Current.Response.Buffer = false; HttpContext.Current.Response.Clear(); HttpContext.Current.Response.ClearContent(); HttpContext.Current.Response.ClearHeaders(); HttpContext.Current.Response.AppendHeader("content-disposition","attachment;filename=" + "my_report.pdf"); HttpContext.Current.Response.ContentType = "Application/pdf"; //Write the file content directly to the HTTP content output stream. HttpContext.Current.Response.BinaryWrite(content); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.End();
but I get this error:
Uncaught Ext.Error: You're trying to decode an invalid JSON String: %PDF-1.4 % 3 0 obj <</Type/XObject/Subtype/Image/Width 994/Height 185/Length 13339/ColorSpace/DeviceGray/BitsPerComponent 8/Filter/FlateDecode>>stream x |E ...........
im absolutely sure that my itextsharp to create pdf is correct, because I can save it to the server, but this is not what I need to do, when I try to send it to the client, I got the error above
early