可以在iTextSharp中为C#将Acrofield值设置为null

时间:2014-07-26 00:40:33

标签: c# itextsharp acrofields

在下面的代码中,对于C#中的iTextSharp,字段值的空值是否可以接受,即第二个参数可以为null还是必须是非空字符串?我在此代码中设置各种acrofields的值。我找不到有关此方法的任何合适的文档。

   foreach (var kvp in fieldsValuesCollection)
     {
       acroFields.SetField(kvp.Key, kvp.Value);
     }

更新1:

我终于找到了答案,并且'SetField'方法的第二个参数不能为null(必须是非空字符串)。我运行了从这个URL下载的一些示例代码:http://www.4guysfromrolla.com/articles/030211-1.aspx并在我的机器上本地运行它,导致下面显示的异常。我对下载的代码所做的唯一更改是将所有文本类型的acrofields设置为null而不是非空字符串,并且它引发了错误。

因此开发人员在设置acrofield值时应该小心,否则他们最终可能会遇到难以发现的错误,因为iTextSharp的API文档中没有提到这一点。

enter image description here

我以前测试的代码如下。

  foreach (var fieldName in formFieldMap.Keys)
    {
        if (formFields.GetFieldType(fieldName) == 4)
        {
            formFields.SetField(fieldName, null);
        }
        else
        {
            formFields.SetField(fieldName, formFieldMap[fieldName]);
        }
    }

0 个答案:

没有答案