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);
}
下面的代码正确地将值 "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);
}