我使用itexsharp生成pdf。 我正在創建MemoryStream,然後當我試圖將MemoryStream字節寫入響應但沒有運氣。當我在我的控制器中執行這個代碼時,pdf不會迴應。內存流正常使用,我可以在調試器中看到這一點,但由於某些原因,這些數量的butes沒有響應。MVC。 Itextsharp將pdf寫入響應
這裏是我的代碼:
HttpContext.Current.Response.ContentType = "application/pdf";
...
using (Stream inputPdfStream = new FileStream(pdfFilePath, FileMode.Open, FileAccess.Read, FileShare.Read))
using (Stream outputPdfStream = new MemoryStream())
{
PdfReader reader = new PdfReader(inputPdfStream);
PdfStamper stamper = new PdfStamper(reader, outputPdfStream);
....
//try one
outputPdfStream.WriteTo(HttpContext.Current.Response.OutputStream); // NOT POPULATING Response
//try two
HttpContext.Current.Response.BinaryWrite(outputPdfStream.ToArray()); // NOT POPULATING Response Too
HttpContext.Current.Response.End();
}
可能有人有什麼想法?
你會在迴應中得到什麼嗎? – BlackICE 2010-09-30 13:35:39
是的,幾個字節,但沒有我的pdf的字節 – Cranik 2010-09-30 13:37:49
我會發佈一個更簡單的例子,不包括inputPdfStream這是另一個pdf文件,所以它會導致混淆。只需輸出MemoryStream作爲PdfWriter實例的流,一個document.open(),一些document.Add(..)和一個document.close()。然後,這個問題簡化爲「我想在迴應中發送包含在輸出MemoryStream中的PDF。如何?......」 – mmutilva 2011-01-30 13:27:28