60

ユーザーを識別するデジタル証明書を持っています。PDFファイルにデジタル署名するために使用する必要があります。

サードパーティのコンポーネントを使用しない例はありますか?私はこれを成し遂げる必要がありますが、物事がどのように行われるかを完全に理解することは素晴らしいことです。

C#の例をお願いします:)

4

4 に答える 4

44

オープン ソースのiTextSharpライブラリを使用すると、これを行うことができます。これは、PDF ファイルにデジタル署名する方法を説明する投稿です。サードパーティのライブラリを使用したくない場合は、自分で実装できますが、難しい作業になる可能性があります -> pdf 仕様(8.6MB)を読むことから始めることができます

于 2008-12-18T19:58:24.823 に答える
11

適切な PDF 署名は非常に高度な作業です。PDF 仕様に準拠していないファイル (破損した xref など) が多数存在し、コードでそれらすべてを処理する必要があります。その後、Acrobat のバージョンによって、署名済みフィールド内の特定の項目の扱いが異なります。そのため、タスクを実行する必要がある場合 (仕組みを調べるのではなく)、PDFBlackboxコンポーネントなどのサードパーティのソリューションを利用する必要があります。

于 2008-12-20T10:37:01.580 に答える
6

サードパーティのコンポーネントを使用せずに PDF ドキュメントにデジタル署名することは、多大な作業を伴うため、一般的には避けるのが最善です。

コンポーネントが面倒な作業をすべてやってくれるので、あなたがする必要はありません。ニーズに合った優れた無料の PDF コンポーネントが利用できることがわかるはずです。

C# で記述された次の例は、ABCpdf を使用して PDF ドキュメントにデジタル署名することがいかに簡単かを示しています。

Doc theDoc = new Doc();
theDoc.Read(Server.MapPath("../Rez/Authorization.pdf"));
Signature theSig = (Signature)theDoc.Form["Signature"];
theSig.Location = "Washington";
theSig.Reason = "Schedule Agreed";
theSig.Sign(Server.MapPath("../Rez/JohnSmith.pfx"), "111111");
theDoc.Save(Server.MapPath("Signed.pdf"));

出典: ABCpdf ドキュメント - Sign メソッド

于 2010-05-06T05:33:37.967 に答える
1

私の最初の答えを失った。DocQにテキストのリンクを試してもらいたい場合があります 。彼らは独自の証明書を持っており、PDFを封印して暗号化するために無料/安価でこれを行うことができます。また、使用できるAPIもあります。

于 2010-05-10T20:37:31.670 に答える