2

以下の C# の iTextSharp のコードでは、フィールド値に null 値を使用できますか?つまり、2 番目のパラメーターを null にすることはできますか? このコードでさまざまなアクロフィールドの値を設定しています。この方法に関する適切なドキュメントが見つかりませんでした。

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

更新 1:

私はついに答えを見つけました。それは、「SetField」メソッドの 2 番目のパラメーターを null にすることはできません (null 以外の文字列にする必要があります)。この 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]);
        }
    }
4

0 に答える 0