1

iTextSharp を使用して、デジタル署名を新しい PDF に追加しています。期待どおり、デジタル署名がファイルに配置されます。ただし、ボックスをクリックしても、署名するデジタル署名を実際に選択することはできません。

私の署名が機能していることをテストするためだけに、デジタル署名を許可する当社の他の PDF ファイルの 1 つを開きました。この PDF のボックスをクリックすると、デジタル署名を選択できます。だから私は私の署名が機能することを知っています。

この問題の原因を知っている人はいますか? テストに使用しているpdfに署名を追加するコードは次のとおりです。

どんな助けでも大歓迎です。

using (Document document = new Document())
        {
            PdfWriter writer = PdfWriter.GetInstance(document, new System.IO.FileStream(@"C:\Users\myusername\Desktop\test.pdf", System.IO.FileMode.Create));
            document.Open();
            document.Add(new Paragraph("A paragraph"));
            PdfFormField sig = PdfFormField.CreateSignature(writer);
            sig.SetWidget(new Rectangle(100, 100, 250, 150), null);
            sig.FieldName = "testSignature";
            sig.Flags = PdfAnnotation.FLAGS_PRINT;
            sig.SetPage();
            sig.MKBorderColor = BaseColor.BLACK;
            sig.MKBackgroundColor = BaseColor.WHITE;
            PdfAppearance appearance = PdfAppearance.CreateAppearance(writer, 72, 48);
            appearance.Rectangle(0.5f, 0.5f, 71.5f, 47.5f);
            appearance.Stroke();
            sig.SetAppearance(
              PdfAnnotation.APPEARANCE_NORMAL, appearance
            );
            writer.AddAnnotation(sig);
        }
4

1 に答える 1

1

ここに誤解があると思います。

iText または iTextSharp を使用して PDF に署名フィールドを追加すると、フル バージョンの Adob​​e Acrobat を使用しているユーザーは、そのフィールドを使用して PDF に署名できます。または、iText(Sharp) を使用して、プログラムでドキュメントに署名することもできます。

Adobe Reader しか持っていない人は、注釈をクリックしてファイルに署名することはできません。これは正常です。PDF は「リーダー対応」ではありません。Reader 対応は、Acrobat (およびその他の Adob​​e 製品) でのみ実行できます。Adobe の秘密鍵を使用して、特別な「使用権」署名が適用されます。Adobe Reader が Adob​​e の公開鍵を使用してこの特別な署名を検証できる場合、Adobe Reader は次のような特定の機能のロックを解除します: Reader が Acrobat であるかのようにドキュメントに署名する機能。

言うまでもなく、ADOBE 以外のサード パーティは、これを達成するために Adob​​e の秘密鍵を使用することは許可されていません。

于 2013-04-30T05:57:27.457 に答える