关于c#:iTextSharp生成pdf,编译和运行没有错误但没有PDF出现

iTextSharp generating pdfs, compiles and runs without error but no PDF appears

我尝试了很多不同的变体来从内存中输出一个非常基本的PDF文件,但是所有这些都返回了相同的结果,也就是说它实际上没有返回任何东西。代码编译并运行时不会出错,但当vs完成代码处理时,什么也不会发生。

我正在使用VS2008和ITextSharp v5.1.1

有人有什么建议吗?

这是我当前状态下的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
MemoryStream ms = new MemoryStream();          
Document doc = new Document();        
PdfWriter writer = PdfWriter.GetInstance(doc, ms);
writer.CloseStream = false;

doc.Open();
doc.Add(new Paragraph("Test Content"));
doc.Add(new Paragraph(DateTime.Now.ToString()));
doc.Close();

Response.ContentType ="application/pdf";
Response.OutputStream.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length);
Response.OutputStream.Flush();            
Response.OutputStream.Close();
ms.Close();


我发现是什么导致了我的问题,代码出现在一个button-click事件中,其中button控件位于Ajax更新面板中,当我将按钮移到更新面板之外时,它工作得很好。不确定这是否是我的一个基本错误,或者是更新面板的一个错误,所以我要去阅读一下。

@马克·斯托尔,我很感激现在这不是一个非常尖锐的问题,但是当我写这篇文章的时候,我相信它是,为这个错误向所有人道歉。


有一件事我很早就知道了,不要用GetBuffer(),用ToArray()。请看这篇文章:

ITextSharp生成的PDF现在导致Adobe Reader X中的"保存"对话框