如何隐藏AcroForm中的字段?

时间:2012-11-15 13:03:42

标签: itextsharp

我正在尝试执行以下代码来隐藏字段

    fields.SetFieldProperty("numberOfPages","setfflags", PdfAnnotation.FLAGS_INVISIBLE, null );
 or 
    fields.SetFieldProperty("slash", "setfflags", PdfAnnotation.FLAGS_HIDDEN, null);

我从行动书中的Itext获得了代码。我正在使用Itextsharp 4.1.6但是没有结果,没有抛出错误。我错了什么? btw“setfflags”来自书中。

2 个答案:

答案 0 :(得分:4)

我知道这个问题是2年前被问到的,但我无法在网上找到答案,希望这会有助于找到这篇文章的其他人。以下是我在iTextSharp 4.1.6中所做的工作

PdfReader reader = new PdfReader(Server.MapPath("[PATH_TO_PDF.pdf]"));
using (MemoryStream ms = new MemoryStream())
{
    PdfStamper stamper = new PdfStamper(reader, ms);
    AcroFields fields = stamper.AcroFields;
    fields.SetFieldProperty("[FIELD_NAME]", "flags", PdfFormField.FLAGS_HIDDEN, null);
    stamper.FormFlattening = true;
    stamper.Close();
}

我通过这里查看iTextSharp来源找到了答案: https://github.com/itextsharper/iTextSharp-4.1.6/blob/master/iTextSharp/text/pdf/AcroFields.cs#L1037

如果查看方法注释,它会显示有效的属性名称及其作用。

答案 1 :(得分:0)

您将字段属性("setfflags")与注释属性("setflags")混淆。请阅读documentation,因为this reason,请不要使用iTextSharp 4.1.6。