c#-iTextSharp-无法访问关闭的Stream。使用PDFReader时

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#-iTextSharp-无法访问关闭的Stream。使用PDFReader时相关的知识,希望对你有一定的参考价值。

我有此文件,它是Stream:

 var streamFile = await graphClient.Me.Drive.Items["id"].Content.Request().GetAsync();

现在我正在尝试使用PdfReader和PdfStamper像这样设置字段:

MemoryStream outFile = new MemoryStream();

            PdfReader pdfReader = new PdfReader(streamFile);
            PdfStamper pdfStamper = new PdfStamper(pdfReader, outFile);
            AcroFields fields = pdfStamper.AcroFields;

            fields.SetField("Full_Names", "JIMMMMMMAYYYYY");

            pdfStamper.Close();
            pdfReader.Close();

但是当我尝试执行此操作时,出现此错误:

无法访问关闭的流。

在此行:

pdfReader.Close();

我在做什么错?

答案

关闭PdfStamper时,也会关闭MemoryStream。为了获得最佳实践,应使用using指令。例如,您可以查看此代码https://stackoverflow.com/a/29146713/713789

以上是关于c#-iTextSharp-无法访问关闭的Stream。使用PDFReader时的主要内容,如果未能解决你的问题,请参考以下文章

无法遍历 iTextSharp 中的字段

让PdfStamper使用MemoryStreams(c#,itextsharp)

使用itextsharp.dll生成PDF [关闭]

iTextSharp - 在电子邮件附件中发送内存中的 pdf

无法写入新的 MemoryStream - 流已关闭

C ++:函数无法访问main()函数中定义的变量[关闭]