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
@ 네이트 네. 파일에 저장 한 다음 보여 주면 작동하도록 할 수 있지만 먼저 저장하지 않고 표시하려고합니다. 그리고 지금까지 조합이 작동하지 않았습니다. 임시 파일을 저장해야한다는 잘못된 생각이 들었습니다. –