既に署名されているExcelファイルにデジタル署名を追加する(C++)
Contents
[
Hide
]
可能な使用シナリオ
Aspose.Cellsは、既に署名されたExcelファイルにデジタル署名を追加するためのWorkbook::AddDigitalSignature(DigitalSignatureCollectionPtr digitalSignatureCollection)メソッドを提供します。
既に署名されたExcelドキュメントにデジタル署名を追加する際の注意点:元のドキュメントがAspose.Cellsで生成された場合は正常に動作します。ただし、他のエンジン(例:Microsoft Excel)で作成された場合、Aspose.Cells for C++はロードと再保存後に正確なファイル構造を維持できず、既存の署名が無効になる可能性があります。
すでに署名されたExcelファイルにデジタル署名を追加する方法
以下のコード例は、Workbook::AddDigitalSignatureを使用して署名済みExcelファイルにデジタル署名を追加する例です。サンプルExcelファイル(50528280.xlsx)は事前に署名済みです。出力ファイル(50528281.xlsx)は結果を示します。デモ証明書[ AsposeDemo.pfx ](50528279.pfx)とパスワードasposeを使用しています。
サンプルコード
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::DigitalSignatures;
int main()
{
Aspose::Cells::Startup();
// Source and output directories
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Certificate and workbook paths
U16String certFilePath = srcDir + u"AsposeDemo.pfx";
U16String inputFilePath = srcDir + u"sampleDigitallySignedByCells.xlsx";
U16String outputFilePath = outDir + u"outputDigitallySignedByCells.xlsx";
// Load digitally signed workbook
Workbook workbook(inputFilePath);
// Create digital signature collection
DigitalSignatureCollection dsCollection;
// Create digital signature using PFX certificate
U16String password = u"aspose";
U16String comments = u"Aspose.Cells added new digital signature in existing digitally signed workbook.";
DigitalSignature signature(certFilePath, password, comments, Date());
// Add signature to collection
dsCollection.Add(signature);
// Apply digital signatures to workbook
workbook.AddDigitalSignature(dsCollection);
// Save modified workbook
workbook.Save(outputFilePath);
std::cout << "Digital signature added successfully." << std::endl;
Aspose::Cells::Cleanup();
return 0;
}