【问题标题】:How to set a pdf Field uneditable in iTextSharp如何在 iTextSharp 中设置不可编辑的 pdf 字段
【发布时间】:2011-01-06 13:42:31
【问题描述】:

正如标题所说,我必须用数据填充文本字段(效果很好)并使这些字段不可编辑。

我尝试使用

form.SetFieldProperty(key, key, TextField.READ_ONLY, Nothing)

但我不知道最后一个参数应该放什么,而且那行实际上并没有为我做任何事情。我尝试做的另一件事是

form.RemoveField(key)

但是删除了包含文本的字段,所以我有一个空白的 pdf。

我一直在寻找解决方案,现在已经有一段时间了,但在没有教程或文档的情况下我找不到任何可以帮助我的东西。实际上,我很惊讶以前没有人要求过该功能。真的是因为没有人需要这个功能吗?还是因为使用 iTextSharp 如此简单或显然不可能?

(对不起,重复发布,我刚刚意识到我的标题没有正确地解决我的问题)

【问题讨论】:

    标签: .net pdf itextsharp textfield


    【解决方案1】:

    对于绝大多数情况,最后一个参数应该为空。

    http://api.itextpdf.com/com/itextpdf/text/pdf/AcroFields.html#setFieldProperty(java.lang.String,%20java.lang.String,%20int,%20int[])

    而且 StackOverflow 在其链接中不喜欢 () 或 []。烦人。

    这不是key, key,而是

    form.SetFieldProperty(fldName, "setfflags", PdfFormField.FF_READ_ONLY, null);
    

    PdfAnnotation 中还定义了许多注释标志,需要这样设置:

    form.SetFieldProperty(fldName, "setflags", PdfAnnotation.FLAG_*, null);
    

    请注意,有 PdfAnnotation.FLAG_READONLY 和 PdfFormField.FF_READ_ONLY。我只设置了 FF_READ_ONLY,但设置另一个也没有什么坏处……或者可以吗!?

    检查JavaDoc。 iThere 中有相当多的 iText 信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-22
      • 2011-02-07
      相关资源
      最近更新 更多