Agregar firma digital a un archivo de Excel ya firmado con C++
Contents
[
Hide
]
Escenarios de uso posibles
Aspose.Cells proporciona el método Workbook::AddDigitalSignature(DigitalSignatureCollectionPtr digitalSignatureCollection) para agregar firmas digitales a archivos de Excel ya firmados.
Tenga en cuenta que al agregar una firma digital a un documento de Excel ya firmado: si el documento original fue generado por Aspose.Cells, funciona correctamente. Sin embargo, si el documento fue creado por otros motores (por ejemplo, Microsoft Excel), Aspose.Cells for C++ no puede preservar exactamente la estructura del archivo después de cargar y volver a guardar, lo que puede invalidar las firmas existentes.
Cómo agregar una firma digital a un archivo de Excel ya firmado
El siguiente ejemplo de código demuestra cómo usar Workbook::AddDigitalSignature para agregar firmas digitales a archivos de Excel firmados. El archivo de Excel de ejemplo viene prefirmado. El archivo de salida demuestra el resultado. Usamos un certificado de demostración AsposeDemo.pfx con contraseña aspose.
Código de muestra
#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;
}