AdvanceSoftware Tech Blog

アドバンスソフトウェア株式会社の技術ブログ

ExcelCreator12で出力PDFファイルに電子署名とタイムスタンプを付与する

ExcelCreator 12.0 for .NETでは、新機能として、出力するPDFファイルに電子署名、タイムスタンプを付与することが可能となりました。この記事では、当製品にて出力PDFファイルに電子署名、タイムスタンプを付与する方法について説明します。

環境

Windowsフォームアプリケーションの作成

新規にWindowsフォームアプリケーションの作成をします。

新規プロジェクト作成

VisualStudio 2022を起動し、[新しいプロジェクトの作成]をクリックします。

次に、"Windowsフォームアプリ"を選択して[次へ]をクリックします。

画面の各項目をそれぞれ設定して[次へ]をクリックし、"追加情報"の画面でフレームワークを選択後、[作成]をクリックしてプロジェクトを立ち上げます。

ExcelCreator12使用準備

プロジェクトが立ち上がったら、[ソリューションエクスプローラー]から[依存関係]を右クリック - [Nugetパッケージの管理]からNugetパッケージマネージャーを開きます。

[パッケージソース]が"nuget.org"になっている事を確認して、参照タブの検索バーから "AdvanceSoftware.ExcelCreator.Creator"と検索し、一覧に表示されるCreatorコンポーネントをダウンロードします。

Nugetパッケージのインストールが完了したら、[表示] - [ツールボックス]からボタンコントロールをフォーム上に張り付け、コントロールをダブルクリックしてボタンのクリックイベントを実装します。

電子署名、タイムスタンプの付与

出力PDFファイルに電子署名、タイムスタンプを付与する方法を説明します。
(※タイムスタンプ付与の際にはインターネットへの接続が必要となります。)

新規PDFファイルの作成方法

コード例(C#)

// コード上でインスタンスを生成します。
AdvanceSoftware.ExcelCreator.Creator creator1 = new AdvanceSoftware.ExcelCreator.Creator();
// createBookメソッドを使用して新規にExcelファイルを出力します。
creator1.CreateBook("Out.xlsx", 1, AdvanceSoftware.ExcelCreator.xlsxVersion.ver2021);
// closeBookメソッドの第二引数にPDFファイル出力先のパスを指定します。
creator.CloseBook(true, "Out.pdf", false);

CloseBookメソッドのオーバーロードの引数は以下の通りです。

引数 説明
第1引数 true:変更内容を保存する
false:変更内容を破棄し、ファイル出力を行わない
第2引数 出力するPDFファイルのパス
第3引数 true:作成したExcelファイルを破棄する(PDFファイルのみ出力される)
false:作成したExcelファイルを破棄しない(Excelファイル / PDFファイル両方が出力される)

ローカル証明書(pfx)データで電子署名を付与する

コード例(C#)

// 連絡先に"info@adv.co.jp"を設定します。
creator1.Pdf.Signature.Contact = "info@adv.co.jp";
// 署名時刻に2024/4/1 12:00:00を設定します。
creator1.Pdf.Signature.Date = new DateTime(2024, 4, 1, 12, 0, 0);
// 場所に"日本"を設定します。
creator1.Pdf.Signature.Location = "日本";
// 理由に"稟議"を設定します。
creator1.Pdf.Signature.Reason = "稟議";
// ローカル証明書(pfx)データに"C:\Certificate.pfx"ファイルの内容を設定します。
creator1.Pdf.Signature.CertificateData = System.IO.File.ReadAllBytes(@"C:\Certificate.pfx");
// ローカル証明書(pfx)データのパスワード"pass"を設定します。
creator1.Pdf.Signature.CertificatePassword = "pass";

電子署名にタイムスタンプを付与する

コード例(C#)

// タイムスタンプサーバーのURL "https://freetsa.org/tsr"を設定します。
creator1.Pdf.Signature.TimeStampUrl = "https://freetsa.org/tsr";
// タイムスタンプサーバーの ユーザー名"user"を設定します。
creator1.Pdf.Signature.TimeStampUser = "user";
// タイムスタンプサーバーの パスワード"pass"を設定します。
creator1.Pdf.Signature.TimeStampPassword = "pass";

PDFファイルの出力

ボタンコントロールのクリックイベントにコードを追記して、電子署名、タイムスタンプを付与したPDFファイルを出力します

コード例(C#)

AdvanceSoftware.ExcelCreator.Creator creator1 = new AdvanceSoftware.ExcelCreator.Creator();
creator1.CreateBook("./Out.xlsx", 1, xlsxVersion.ver2021);
creator1.Cell("A1").Value = "PDF ファイルの署名をご確認ください。";
creator1.Pdf.Signature.Contact = "info@adv.co.jp";
creator1.Pdf.Signature.Date = new DateTime(2024, 4, 1, 12, 0, 0);
creator1.Pdf.Signature.Location = "日本";
creator1.Pdf.Signature.Reason = "稟議";
creator1.Pdf.Signature.CertificateData = System.IO.File.ReadAllBytes(@"C:\Certificate.pfx");
creator1.Pdf.Signature.CertificatePassword = "pass";

creator1.Pdf.Signature.TimeStampUrl = "https://freetsa.org/tsr";
creator1.Pdf.Signature.TimeStampUser = "user";
creator1.Pdf.Signature.TimeStampPassword = "pass";

// PDFファイルを出力します。
creator1.CloseBook(true, "./Out.pdf", false);

出力結果

最後に

ExcelCreator12で出力PDFファイルに電子署名とタイムスタンプを付与する方法について解説してきました。
今回は以上です、ありがとうございました。
ExcelCreator12製品ページはこちら
ExcelCreator12体験版はこちら

© 2022 Advance Software Co., Ltd. All Rights Reserved.