/// <summary> /// Sign image document with metadata signature /// </summary> public static void Run() { Console.WriteLine("\n--------------------------------------------------------------------------------------------------------------------"); Console.WriteLine("[Example Basic Usage] # SignImageWithMetadata : Sign image document with metadata signature\n"); // The path to the documents directory. string filePath = Constants.SAMPLE_IMAGE; string outputFilePath = Path.Combine(Constants.OutputPath, "SignImageWithMetadata", "SignedWithMetadata.png"); using (Signature signature = new Signature(filePath)) { // create Metadata option with predefined Metadata text MetadataSignOptions options = new MetadataSignOptions(); // Specify different Metadata Signatures and add them to options signature collection ushort imgsMetadataId = 41996; // Create several Image Metadata signatures with different types ImageMetadataSignature[] signatures = new ImageMetadataSignature[] { new ImageMetadataSignature(imgsMetadataId++, "Mr.Scherlock Holmes"), // String value new ImageMetadataSignature(imgsMetadataId++, DateTime.Now), // Date Time value new ImageMetadataSignature(imgsMetadataId++, 123456), // Integer value new ImageMetadataSignature(imgsMetadataId++, 123.456D), // Double value new ImageMetadataSignature(imgsMetadataId++, 123.456M), // Decimal value new ImageMetadataSignature(imgsMetadataId++, 123.456F), // Float value }; options.Signatures.AddRange(signatures); // sign document to file SignResult result = signature.Sign(outputFilePath, options); Console.WriteLine($"\nSource document signed successfully with {result.Succeeded.Count} signature(s).\nFile saved at {outputFilePath}."); } }
/// <summary> /// Sign spreadsheets document with metadata signature /// </summary> public static void Run() { Console.WriteLine("\n--------------------------------------------------------------------------------------------------------------------"); Console.WriteLine("[Example Basic Usage] # SignSpreadsheetWithMetadata : Sign spreadsheets document with metadata signature\n"); // The path to the documents directory. string filePath = Constants.SAMPLE_SPREADSHEET; string outputFilePath = Path.Combine(Constants.OutputPath, "SignSpreadsheetWithMetadata", "SignedWithMetadata.xlsx"); using (Signature signature = new Signature(filePath)) { // create Metadata option with predefined Metadata text MetadataSignOptions options = new MetadataSignOptions(); // Create few Spreadsheet Metadata signatures SpreadsheetMetadataSignature[] signatures = new SpreadsheetMetadataSignature[] { new SpreadsheetMetadataSignature("Author", "Mr.Scherlock Holmes"), // String value new SpreadsheetMetadataSignature("CreatedOn", DateTime.Now), // DateTime values new SpreadsheetMetadataSignature("DocumentId", 123456), // Integer value new SpreadsheetMetadataSignature("SignatureId", 123.456D), // Double value new SpreadsheetMetadataSignature("Amount", 123.456M), // Decimal value new SpreadsheetMetadataSignature("Total", 123.456F) // Float value }; options.Signatures.AddRange(signatures); // sign document to file SignResult result = signature.Sign(outputFilePath, options); Console.WriteLine($"\nSource document signed successfully with {result.Succeeded.Count} signature(s).\nFile saved at {outputFilePath}."); } }
/// <summary> /// Sign Image document with metadata signature with customer object and encryption /// </summary> public static void Run() { Console.WriteLine("\n--------------------------------------------------------------------------------------------------------------------"); Console.WriteLine("[Example Advanced Usage] # SignImageWithCustomMetadata : Sign Image document with metadata signature with customer object and encryption\n"); // The path to the documents directory. string filePath = Constants.SAMPLE_IMAGE; string fileName = Path.GetFileName(filePath); string outputFilePath = Path.Combine(Constants.OutputPath, "SignImageWithCustomMetadata", fileName); using (Signature signature = new Signature(filePath)) { // setup key and passphrase string key = "1234567890"; string salt = "1234567890"; // create data encryption IDataEncryption encryption = new SymmetricEncryption(SymmetricAlgorithmType.Rijndael, key, salt); // setup options with text of signature MetadataSignOptions options = new MetadataSignOptions(); // create custom object DocumentSignatureData documentSignature = new DocumentSignatureData() { ID = Guid.NewGuid().ToString(), Author = Environment.UserName, Signed = DateTime.Now, DataFactor = 11.22M }; // Specify different Metadata Signatures and add them to options signature collection ushort imgsMetadataId = 41996; // Specify different Metadata Signatures and add them to options signature collection // setup Author property ImageMetadataSignature mdDocument = new ImageMetadataSignature(imgsMetadataId++, documentSignature); // set encryption mdDocument.DataEncryption = encryption; // setup Author property ImageMetadataSignature mdAuthor = new ImageMetadataSignature(imgsMetadataId++, "Mr.Scherlock Holmes"); // set encryption mdAuthor.DataEncryption = encryption; // setup data of document id ImageMetadataSignature mdDocId = new ImageMetadataSignature(imgsMetadataId++, Guid.NewGuid().ToString()); // set encryption mdDocId.DataEncryption = encryption; // add signatures to options options.Signatures.Add(mdDocument); options.Signatures.Add(mdAuthor); options.Signatures.Add(mdDocId); // sign document to file SignResult signResult = signature.Sign(outputFilePath, options); Console.WriteLine($"\nSource document signed successfully with {signResult.Succeeded.Count} signature(s).\nFile saved at {outputFilePath}."); } }
/// <summary> /// Sign pdf document with metadata signature with customer object and encryption /// </summary> public static void Run() { Console.WriteLine("\n--------------------------------------------------------------------------------------------------------------------"); Console.WriteLine("[Example Advanced Usage] # SignWithMetadataEncryptedObject : Sign pdf document with metadata signature with customer object and encryption\n"); // The path to the documents directory. string filePath = Constants.SAMPLE_WORDPROCESSING; string outputFilePath = Path.Combine(Constants.OutputPath, "SignWithMetadataSecureCustom", "MetadataEncryptedObject.docx"); using (Signature signature = new Signature(filePath)) { // setup key and passphrase string key = "1234567890"; string salt = "1234567890"; // create data encryption IDataEncryption encryption = new SymmetricEncryption(SymmetricAlgorithmType.Rijndael, key, salt); // setup options with text of signature MetadataSignOptions options = new MetadataSignOptions() { // set encryption for all metadata signatures for this options // if you need separate encryption use own MetadataSignature.DataEncryption property DataEncryption = encryption }; // create custom object DocumentSignatureData documentSignatureData = new DocumentSignatureData() { ID = Guid.NewGuid().ToString(), Author = Environment.UserName, Signed = DateTime.Now, DataFactor = 11.22M }; // setup signature metadata WordProcessingMetadataSignature mdSignature = new WordProcessingMetadataSignature("Signature", documentSignatureData); // setup signature metadata WordProcessingMetadataSignature mdAuthor = new WordProcessingMetadataSignature("Author", "Mr.Scherlock Holmes"); // setup data of document id WordProcessingMetadataSignature mdDocId = new WordProcessingMetadataSignature("DocumentId", Guid.NewGuid().ToString()); // add signatures to options options.Signatures.Add(mdSignature); options.Signatures.Add(mdAuthor); options.Signatures.Add(mdDocId); // sign document to file SignResult signResult = signature.Sign(outputFilePath, options); Console.WriteLine($"\nSource document signed successfully with {signResult.Succeeded.Count} signature(s).\nFile saved at {outputFilePath}."); } }
/// <summary> /// Sign pdf document with metadata signature /// </summary> public static void Run() { Console.WriteLine("\n--------------------------------------------------------------------------------------------------------------------"); Console.WriteLine("[Example Advanced Usage] # SignPdfWithStandardMetadata : Sign pdf document with metadata signature\n"); // The path to the documents directory. string filePath = Constants.SAMPLE_PDF; string fileName = Path.GetFileName(filePath); string outputFilePath = Path.Combine(Constants.OutputPath, "SignPdfWithStandardMetadata", fileName); using (Signature signature = new Signature(filePath)) { // setup options with text of signature MetadataSignOptions options = new MetadataSignOptions(); // Using standard Pdf Metadata Signatures with new values MetadataSignature[] signatures = new MetadataSignature[] { PdfMetadataSignatures.Author.Clone("Mr.Scherlock Holmes"), PdfMetadataSignatures.CreateDate.Clone(DateTime.Now.AddDays(-1)), PdfMetadataSignatures.MetadataDate.Clone(DateTime.Now.AddDays(-2)), PdfMetadataSignatures.CreatorTool.Clone("GD.Signature-Test"), PdfMetadataSignatures.ModifyDate.Clone(DateTime.Now.AddDays(-13)), PdfMetadataSignatures.Producer.Clone("GroupDocs-Producer"), PdfMetadataSignatures.Entry.Clone("Signature"), PdfMetadataSignatures.Keywords.Clone("GroupDocs, Signature, Metadata, Creation Tool"), PdfMetadataSignatures.Title.Clone("Metadata Example"), PdfMetadataSignatures.Subject.Clone("Metadata Test Example"), PdfMetadataSignatures.Description.Clone("Metadata Test example description"), PdfMetadataSignatures.Creator.Clone("GroupDocs.Signature"), }; options.Signatures.AddRange(signatures); // sign document to file SignResult signResult = signature.Sign(outputFilePath, options); Console.WriteLine($"\nSource document signed successfully with {signResult.Succeeded.Count} signature(s).\nFile saved at {outputFilePath}."); } }
/// <summary> /// Sign document with multiple signature types /// </summary> public static void Run() { Console.WriteLine("\n--------------------------------------------------------------------------------------------------------------------"); Console.WriteLine("[Example Basic Usage] # SignWithMultipleOptions : Sign document with multiple signature types \n"); // The path to the documents directory. string filePath = Constants.SAMPLE_WORDPROCESSING; string outputFilePath = Path.Combine(Constants.OutputPath, "SignWithMultiple", "SignWithMultiple.docx"); using (Signature signature = new Signature(filePath)) { // define several signature options of different types and settings TextSignOptions textOptions = new TextSignOptions("Text signature") { VerticalAlignment = VerticalAlignment.Top, HorizontalAlignment = HorizontalAlignment.Left }; BarcodeSignOptions barcodeOptions = new BarcodeSignOptions("123456") { EncodeType = BarcodeTypes.Code128, Left = 0, Top = 150, Height = 50, Width = 200 }; QrCodeSignOptions qrcodeOptions = new QrCodeSignOptions("JohnSmith") { EncodeType = QrCodeTypes.QR, Left = 0, Top = 220 }; DigitalSignOptions digitalOptions = new DigitalSignOptions(Constants.CertificatePfx) { ImageFilePath = Constants.ImageHandwrite, Left = 20, Top = 400, Height = 100, Width = 100, Password = "******" }; ImageSignOptions imageOptions = new ImageSignOptions(Constants.ImageStamp) { Left = 20, Top = 550, Height = 100, Width = 100 }; MetadataSignOptions metaOptions = new MetadataSignOptions(); WordProcessingMetadataSignature[] metaSignatures = new WordProcessingMetadataSignature[] { new WordProcessingMetadataSignature("Author", "Mr.Scherlock Holmes"), new WordProcessingMetadataSignature("CreatedOn", DateTime.Now) }; metaOptions.Signatures.AddRange(metaSignatures); // define list of signature options List <SignOptions> listOptions = new List <SignOptions>(); listOptions.Add(textOptions); listOptions.Add(barcodeOptions); listOptions.Add(qrcodeOptions); listOptions.Add(digitalOptions); listOptions.Add(imageOptions); listOptions.Add(metaOptions); // sign document to file SignResult result = signature.Sign(outputFilePath, listOptions); Console.WriteLine($"\nSource document signed successfully with {result.Succeeded.Count} signature(s).\nFile saved at {outputFilePath}."); } }