如何隐藏 AcroForm 中的字段?

Kar*_*man 1 itext

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

\n\n
    fields.SetFieldProperty("numberOfPages","setfflags", PdfAnnotation.FLAGS_INVISIBLE, null );\n or \n    fields.SetFieldProperty("slash", "setfflags", PdfAnnotation.FLAGS_HIDDEN, null);\n
Run Code Online (Sandbox Code Playgroud)\n\n

我从《Itext in Action》书中获取了代码。我正在使用 Itextsharp 4.1.6 但没有得到任何结果,也没有抛出错误。我做错了什么?顺便说一句,“setfflags”来自这本书。

\n

Sab*_*ino 5

我知道这个问题是两年前提出的,但我在网上找不到答案,希望这会对找到这篇文章的其他人有所帮助。这是我在 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();
}
Run Code Online (Sandbox Code Playgroud)

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

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