2011-11-09 87 views
2

我有从PDF模板生成PDF文件的代码(在.ashx文件中)。生成的pdf通过名称和代码进行个性化。我使用iTextSharp来做到这一点。把生成的pdf文件不保存在服务器上

这是代码:

using (var existingFileStream = new FileStream(fileNameExisting, FileMode.Open)) 
    using (var newFileStream = new FileStream(fileNameNew, FileMode.Create)) 
    { 
     var pdfReader = new PdfReader(existingFileStream); 
     var stamper = new PdfStamper(pdfReader, newFileStream); 

     var form = stamper.AcroFields; 
     var fieldKeys = form.Fields.Keys; 

     form.SetField("Name", name); 
     form.SetField("Code", code); 

     stamper.FormFlattening = true; 

     stamper.Close(); 
     pdfReader.Close(); 
    } 

context.Response.AppendHeader("content-disposition", "inline; filename=zenith_coupon.pdf"); 
context.Response.TransmitFile(fileNameNew); 
context.Response.ContentType = "application/pdf"; 

这工作,但它节省了服务器上的文件。我不想这样做,因为会有很多人下载PDF文件,服务器会很快满了。

所以我的问题是,我怎样才能生成一个PDF与iTextSharp没有保存它,并把它给用户?

回答

5

而不是使用一个FileStream你可以使用一个MemoryStream,然后使用Response.Write()输出流内容。

相关问题