我想在使用iTextSharp的MVC中創建一個PDF文件。我有一個簡單的使用案例。文件正在創建,但是當我打開PDF時,我得到錯誤文件已損壞無法打開文件。任何想法/幫助?iTextSharp在內存中創建文件導致損壞的文件
我的控制器代碼是如下
public FileStreamResult GetPdfMemory()
{
iTextSharp.text.Document doc = new iTextSharp.text.Document();
MemoryStream mem = new MemoryStream();
PdfWriter pdfWriter = PdfWriter.GetInstance(doc, mem);
//pdfWriter.CloseStream = false;
doc.Open();
doc.Add(new Paragraph("Charts"));
mem.Position = 0;
FileStreamResult fileStreamResult = new FileStreamResult(mem, System.Net.Mime.MediaTypeNames.Application.Pdf)
{
FileDownloadName = "chart_" + ".PDF"
};
return fileStreamResult;
}
查看: @ Html.ActionLink( 「全文記憶」, 「GetPdfMemory」, 「家」,空,新的{ID = 「下載」})
僅供參考:當我嘗試使用FileStream而不是MemoryStream時,所有工作都正常。但我需要使用內存流創建PDF。
在MVC中,當將FileStreamResult作爲操作結果返回時,我們不能使用using子句。我們將始終得到「無法接近關閉」錯誤。僅供參考,我在.NET MVC中嘗試了這一點。 – Think 2013-02-20 16:33:07
在這種情況下,請在答案中嘗試其他選擇。 – mkl 2013-02-20 19:42:35
這是我發佈在我原來的問題,除非你指的是一些其他的選擇。 – Think 2013-02-20 20:01:26