gpt4 book ai didi

c# - iTextSharp 文件操作和显示到 FileStreamResults

转载 作者:太空狗 更新时间:2023-10-30 01:09:17 24 4
gpt4 key购买 nike

我正在尝试使用 iTextSharp 打开 PDF 文件,将数据集添加到文件以预填充数据,然后将其保存到流中以便我可以将其显示给用户。我不想将它保存在本地文件中。我不断收到错误消息“无法访问已关闭的流”。我不知道哪个流是错误的。

这是我的代码:

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

最佳答案

PdfStamper 在其内部输出流上有一个 .CloseStream 属性;尝试将其设置为 false:

using (var stamper = new PdfStamper(reader, outstream))
{
stamper.Writer.CloseStream = false;

关于c# - iTextSharp 文件操作和显示到 FileStreamResults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7196024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com