我不知道我是否遗漏了某些内容(我无论如何都不是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");
}
}
}