0

我不知道我是否遗漏了什么(无论如何我都不是 iTextSharp 专家),但我所读到的关于 iTextSharp 的 PdfStamper 类的所有内容都表明,在调用 Close() 方法时,它应该写入任何流(所以 FileStream 应该被写入磁盘)。下面的 using 语句应该会自动关闭我认为的那些方法,但即使我在 using 语句中手动调用了 PdfStamper.Close() ,我的新文件也不会写入磁盘。有人可以告诉我为什么吗?提前致谢。

        var outputStream = new FileStream("SamplePDFs\\SampleOutput.pdf", FileMode.Create);

        using (var pdfReader = new PdfReader("SamplePDFs\\SampleInput.pdf"))
        using (var pdfStamper = new PdfStamper(pdfReader, outputStream))
        {
            foreach (var field in pdfReader.AcroForm.Fields)
            {
                Console.WriteLine("Name: " + field.Name);

                if(field.Name == "SomeField")
                {
                    var stamperFields = pdfStamper.AcroFields;
                    stamperFields.SetField(field.Name, "TESTING");
                }
            }
        }
4

0 回答 0