Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当我将pdf文件返回到请求时,我得到一个错误ObjectDisposedException:无法访问封闭流_C#_Asp.net_Io - Fatal编程技术网

C# 当我将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

我有一个带有get方法的控制器,当访问此控制器时,我需要输入现有pdf文件(模板)中的一些数据以返回此文件。当我将此pdf文件返回到请求时,我得到一个错误:

ObjectDisposedException:无法访问封闭流

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");