iTextSharp PdfStamper.PartialFormFlattening 仅展平部分而非全部字段

iTextSharp PdfStamper.PartialFormFlattening flattening only some, not all, of the fields

下面的代码正确地将值 "foo" 分配给命名字段,但该字段不是 "flattened"。我一定是忽略了一步,但我不知道它是什么。请指教。谢谢

public byte[] FlattenSpecifiedFormFields(byte[] b, List<string> fieldNames2Flatten)
    {
        PdfReader reader = new PdfReader(b);
        using (var ms = new MemoryStream())
        {
            var stamper = new iTextSharp.text.pdf.PdfStamper(reader, ms);               
            foreach (string name in fieldNames2Flatten)
            {

                stamper.AcroFields.SetField(name, "foo");
                stamper.PartialFormFlattening(name);
            }

            stamper.Close();
            return ms.ToArray();
        };
    }

即使部分展平表单,PdfStamper FormFlattening 属性 也必须 设置为 true。即:

var stamper = new PdfStamper(reader, ms);
stamper.FormFlattening = true;

foreach (string name in fieldNames2Flatten)
{
    stamper.AcroFields.SetField(name, "foo");
    stamper.PartialFormFlattening(name);
}