プログラムで署名されたPDFドキュメントは、AcrobatReaderを使用して署名された後に緑色のチェックマークが表示されません
Nov 24 2020
PDFドキュメントに署名するためのアプリケーションを作成しましたが、署名されていないPDFドキュメントに署名できるようになり、AdobeReaderに緑色のチェックマークが表示されます。さらに、複数の署名を使用してファイルに署名することができ、結果は問題ありません。
しかし、Adobe Readerを使用してドキュメントに署名しようとすると、再度署名すると、Acrobatはドキュメントが変更されたと見なすため、最後の署名より前の署名には緑色のチェックマークが付きません。次に、Adobe Readerとアプリケーションを使用してドキュメントに再度署名すると、次の署名に再び緑色のマークが付けられます。問題は最初のAdobe署名で発生しますが、理由がわかりません。
ワークフロー:
- Acrobat付きの署名1 => ok
- 私のアプリの署名2 =>以前の署名は無効ですが、これは問題ありません
- Acrobat =>署名1の署名3は無効ですが、2と3は問題ありません
- 私のアプリの署名4 =>署名1は無効ですが、2、3、4は問題ありません
問題を特定して修正するのを手伝っていただけませんか。
前もって感謝します。
ファイル:
- 元のファイル
- 私が署名したファイル(緑色のチェックマークが付いています)
- acrobatによって署名されたファイル(正しい)。
- acrobatによって再度署名されたファイル(正しい)
- acrobat a meによって署名されたファイル(Adobeの署名された部分の緑色のチェックマークを取得できません)
回答
2 mkl Nov 24 2020 at 23:30
AcroFormディクショナリDAのデフォルトの外観エントリを変更します。
Adobeによって署名されたドキュメントでは、AcroForm辞書は次のようになります。
<</DA(/Helv 0 Tf 0 g )/DR<</Encoding<</PDFDocEncoding 8 0 R>>/Font<</Helv 6 0 R/MyriadPro-Regular 27 0 R/ZaDb 7 0 R>>>>/Fields[26 0 R]/SigFlags 3>>
その文書に署名すると、次のようになります。
<</DA(/Helv 0 Tf 0 g)/DR<</Encoding<</PDFDocEncoding 8 0 R>>/Font<</Helv 6 0 R/MyriadPro-Regular 27 0 R/ZaDb 7 0 R>>>>/Fields[26 0 R 35 0 R]/SigFlags 3>>
つまり、DAエントリの末尾のスペース文字を削除しました。