4
我想頂部使用iTextSharp打開PDF文件,將數據集添加到該文件預先填充數據,然後將其保存到一個流,以便我可以將其顯示給用戶。我不想將它本地保存到文件中。我不斷收到錯誤「無法訪問封閉的流」。我找不出哪個流是錯誤的。iTextSharp文件操作和顯示到FileStreamResults
這是我的代碼:
public FileStreamResult PushDataIntoPDFStream(string filename)
{
var reader = new PdfReader(Path.Combine(Server.MapPath(path), filename));
var xml = @"<?xml version=""1.0"" encoding=""UTF-8""?>
<form1>
<firstName>test</firstName>
<lastName>user</lastName>
<driveCar>0</driveCar>
<gender>1</gender>
<birthdate>2011-08-12</birthdate>
<numPets>4</numPets>
</form1>";
using (var outstream = new MemoryStream())
{
using (var stamper = new PdfStamper(reader, outstream))
{
var bytes = System.Text.Encoding.UTF8.GetBytes(xml);
using (var ms = new MemoryStream(bytes))
{
stamper.AcroFields.Xfa.FillXfaForm(ms);
}
}
return new FileStreamResult(outstream, "application/pdf")
{
FileDownloadName = "file.pdf";
};
}
}
您是否嘗試過使用''以外的'return'? – Nate
@是的。如果我將它保存到一個文件然後顯示它,我可以使它工作,但我試圖在不保存它的情況下顯示它,到目前爲止沒有組合工作。我有一種不好的感覺,我將不得不保存臨時文件。 –