1

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

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

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

4

2 回答 2

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

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

于 2015-07-24T11:20:21.377 回答
0

您将字段属性 ( "setfflags") 与注释属性 ( "setflags") 混淆了。请阅读文档,因此请不要使用 iTextSharp 4.1.6 。

于 2012-11-17T09:40:18.930 回答