在以下 C# 中 iTextSharp 的代码中,字段值的空值是否可以接受,即第二个参数可以为空还是必须为非空字符串?我正在此代码中设置各种 acrofields 的值。我找不到有关此方法的任何合适文档。
foreach (var kvp in fieldsValuesCollection)
{
acroFields.SetField(kvp.Key, kvp.Value);
}
更新 1:
我终于找到了答案,'SetField'方法的第二个参数不能为空(必须是非空字符串)。我运行了从这个 url 下载的一些示例代码:http ://www.4guysfromrolla.com/articles/030211-1.aspx并在我的机器上本地运行它,导致如下所示的异常。我对下载的代码所做的唯一更改是将所有文本类型的 acrofields 设置为 null 而不是非 null 字符串,这会引发错误。
因此,开发人员在设置 acrofield 值时应该小心,否则他们最终可能会遇到一个难以找到的错误,因为 iTextSharp 的 API 文档中没有提到这个事实。
我用来测试的代码如下。
foreach (var fieldName in formFieldMap.Keys)
{
if (formFields.GetFieldType(fieldName) == 4)
{
formFields.SetField(fieldName, null);
}
else
{
formFields.SetField(fieldName, formFieldMap[fieldName]);
}
}