- Does ASPOSE library support Excel/csv memory stream as an input parameter and sign them and convert into PDF?
- Dose ASPOSE library support C# and Java?
@nchada,
Aspose.Cells for .NET API supports .NET while Aspose.Cells for Java can be used in Java environment. For signing excel files, see the documents with example code for your reference:
its a web application and we have a Excel,csv and pdf memory stream.
would Aspose support to digital sign the memorystream and convert them into pdf and password protect ?
@nchada,
Aspose.Cells provides features to digitally sign and password protect the memory stream and save it as PDF. Please give a try to the following sample code and share the feedback.
//Certificate file and its password
string certFileName = @"C:\test\testcert1.pfx";
string password = "testcert1";
//Create a template workbbok for teting
Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook();
MemoryStream str = workbook.SaveToStream();
//Load the stream into workbook
Workbook wb2 = new Workbook(str);
//Create the digital signature collection
Aspose.Cells.DigitalSignatures.DigitalSignatureCollection dsCollection = new Aspose.Cells.DigitalSignatures.DigitalSignatureCollection();
//Create new certificate
System.Security.Cryptography.X509Certificates.X509Certificate2 certificate = new System.Security.Cryptography.X509Certificates.X509Certificate2(certFileName, password);
//Create new digital signature and add it in digital signature collection
Aspose.Cells.DigitalSignatures.DigitalSignature signature = new Aspose.Cells.DigitalSignatures.DigitalSignature(certificate, "Aspose.Cells added new digital signature.", DateTime.Now);
dsCollection.Add(signature);
//Add digital signature collection inside the workbook
wb2.AddDigitalSignature(dsCollection);
// Specify XOR encryption type.
wb2.SetEncryptionOptions(EncryptionType.XOR, 40);
// Specify Strong Encryption type (RC4,Microsoft Strong Cryptographic Provider).
wb2.SetEncryptionOptions(EncryptionType.StrongCryptographicProvider, 128);
// Password protect the file.
wb2.Settings.Password = "1234";
//Save the workbook and dispose it.
//workbook.Save("outputDigitallySignedByCells.xlsx");
MemoryStream pdfStream = new MemoryStream();
wb2.Save(pdfStream, Aspose.Cells.SaveFormat.Pdf);
//OR
wb2.Save(@"c:\test\output.pdf", Aspose.Cells.SaveFormat.Pdf);
wb2.Dispose();
we are creating a memory stream from DB data and I tried with your sample and it is throwing an error : This file’s format is not supported or you don’t specify a correct format.
here I am giving a sample memory stream format. can you please try on your end ?
public MemoryStream GetFullDemographicsDetails()
{
MemoryStream demographicsStream = new MemoryStream();
byte[] demographicsArray = null;
//Get the List seperator from the Regional settings of the system.
string listSeperator = Thread.CurrentThread.CurrentCulture.TextInfo.ListSeparator;
// Add Report header info to the StringBuilder
string reportHeader = ("DemographicsReport" + listSeperator + listSeperator + "Respironics" + listSeperator + listSeperator +
"Printedby" + listSeperator + "softwareVersion" + listSeperator + listSeperator + "PrintedDate" + listSeperator + listSeperator +
DateTime.Today.ToShortDateString() + listSeperator + listSeperator + listSeperator + listSeperator + listSeperator + listSeperator +
listSeperator + listSeperator + listSeperator + listSeperator + listSeperator + listSeperator + listSeperator + listSeperator + listSeperator +
listSeperator + listSeperator + listSeperator + listSeperator + listSeperator + listSeperator + listSeperator + listSeperator + listSeperator +
listSeperator + listSeperator + listSeperator + listSeperator + listSeperator + listSeperator + listSeperator + listSeperator + listSeperator +
listSeperator + "\n");
// Add column names to the StringBuilder
string columnNames = ("LastName" + listSeperator +
"FirstName" + listSeperator +
"MiddleName" + listSeperator +
"PatientID" + listSeperator + "\n");
demographicsArray = Encoding.UTF8.GetBytes(reportHeader);
demographicsStream.Write(demographicsArray, 0, demographicsArray.Length);
demographicsArray = Encoding.UTF8.GetBytes(columnNames);
demographicsStream.Write(demographicsArray, 0, demographicsArray.Length);
string detailItem = string.Empty;
detailItem = String.Format("\"{0}\"{4}\"{1}\"{4}\"{2}\"{4}\"{3}\"{4}",
"LastName",
"FirstName",
"MiddleName",
"PatientID", listSeperator);
detailItem += "\"\n";
demographicsArray = Encoding.UTF8.GetBytes(detailItem);
demographicsStream.Write(demographicsArray, 0, demographicsArray.Length);
return demographicsStream;
}
@nchada,
It looks same issue, “file’s format is not supported”, as you reported in other topic. We are checking it and provide our feedback soon.