C# 当我将pdf文件返回到请求时,我得到一个错误ObjectDisposedException:无法访问封闭流
我有一个带有get方法的控制器,当访问此控制器时,我需要输入现有pdf文件(模板)中的一些数据以返回此文件。当我将此pdf文件返回到请求时,我得到一个错误: ObjectDisposedException:无法访问封闭流C# 当我将pdf文件返回到请求时,我得到一个错误ObjectDisposedException:无法访问封闭流,c#,asp.net,io,C#,Asp.net,Io,我有一个带有get方法的控制器,当访问此控制器时,我需要输入现有pdf文件(模板)中的一些数据以返回此文件。当我将此pdf文件返回到请求时,我得到一个错误: ObjectDisposedException:无法访问封闭流 PdfReader reader=新的PdfReader(templateFilePath); 矩形rect=reader.GetPageSize(1); var fs=新内存流(); 使用(PdfStamper压模=新PdfStamper(读卡器,fs)) { //修改pdf
PdfReader reader=新的PdfReader(templateFilePath);
矩形rect=reader.GetPageSize(1);
var fs=新内存流();
使用(PdfStamper压模=新PdfStamper(读卡器,fs))
{
//修改pdf内容
PdfContentByte cb=stamper.GetOverContent(1);
cb.SetColorStroke(iTextSharp.text.BaseColor.GREEN);
cb.设置线宽(5f);
cb.圆(左直(1)+30,下直(1)+30,20f);
cb.Stroke();
}
reader.Close();
fs.位置=0;
返回文件(fs、“应用程序/pdf”、“新文件”);
PdfStamper
拥有传递给它的读卡器的所有权,不要试图显式关闭它-它已经完成。谢谢,问题解决了
var reader = new PdfReader(templatePath);
var ms = new MemoryStream();
var pageSize = reader.GetPageSize(1);
byte[] bytes;
using (var stamper = new PdfStamper(reader, ms))
{
var canvas = stamper.GetOverContent(1);
var bf = BaseFont.CreateFont(fontPath, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
//Date
canvas.BeginText();
canvas.SetFontAndSize(bf, 10);
canvas.ShowTextAligned(PdfContentByte.ALIGN_RIGHT,
$"10/30/2018",
pageSize.GetRight(Utilities.MillimetersToPoints(26)),
pageSize.GetTop(Utilities.MillimetersToPoints(20.
canvas.EndText();
stamper.Close();
bytes = ms.ToArray();
}
return File(bytes, "application/pdf", "payment.pdf");