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