我使用iTextSharp生成了一个pdf,当它创建它时,它会自动保存在我的代码中提供的位置上,而不是在客户端,当然也不会告诉用户。iTextSharp生成PDF:如何将pdf发送到客户端并添加提示?
我需要将其发送给客户端,我需要提示一个对话框,问他在哪里要救自己PDF用户..
我如何能做到这一点吗?
这是我的PDF代码:
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);
}
编辑
这是结果的一个例子,我想 http://examples.extjs.eu/?ex=download
感谢您的答复,我修改了代码,这:
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();
,但我得到这个错误:
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绝对相信我的iTextSharp的创建PDF是正确的,因为我可以将它保存在服务器上,但那不是什么我需要做的,当我尝试把它发送到在客户端,我得到
由于上述错误提前
适用于WebApp/WinForm/Console程序吗?在继续pdf生成之前,您总是可以请求一个位置。 – YetAnotherUser 2011-12-14 14:24:30
它的一个web应用程序..如何做呢? (对不起,新的C#和iTextSharp) – Armance 2011-12-14 14:29:05