public void SignDigitalSpreadsheet()
        {
            // Set request
            var testFile       = TestFiles.SpreadsheetStorage.FirstOrDefault();
            var fileInfo       = testFile.GetFileInfo();
            var signedFileName = $@"Output\SpreadsheetDigitalSigned.{testFile.Extension}";

            var options = new SignDigitalOptions();

            PopulateOptions(options);
            var signSettings = new SignSettings();

            signSettings.FileInfo    = fileInfo;
            signSettings.SaveOptions = new SaveOptions()
            {
                OutputFilePath = signedFileName
            };
            signSettings.Options = new List <SignOptions>()
            {
                options
            };
            var request = new CreateSignaturesRequest(signSettings);

            // Get and check result
            var response = SignatureApi.CreateSignatures(request);

            CheckResponse(response, testFile);

            //Download the signed file
            this.DownloadFile(signedFileName);
        }
        public void SignCollectionPdf()
        {
            // Set request
            var testFile       = TestFiles.PdfStorage.FirstOrDefault();
            var fileInfo       = testFile.GetFileInfo();
            var signedFileName = $@"Output\PdfCollectionSigned.{testFile.Extension}";

            var optionsBarcode = new SignBarcodeOptions();

            TestsSignBarcode.PopulateOptions(optionsBarcode);
            optionsBarcode.Top = 0;

            var optionsQrCode = new SignQRCodeOptions();

            TestsSignQrCode.PopulateOptions(optionsQrCode);
            optionsQrCode.Top = optionsBarcode.Height + 20;

            var optionsDigital = new SignDigitalOptions();

            TestsSignDigital.PopulateOptions(optionsDigital);
            optionsDigital.Top = optionsQrCode.Top + optionsQrCode.Height + 20;

            var optionsText = new SignTextOptions();

            TestsSignText.PopulateOptions(optionsText);
            optionsText.Top = optionsDigital.Top + optionsDigital.Height + 20;

            var optionsImage = new SignImageOptions();

            TestsSignImage.PopulateOptions(optionsImage);
            optionsImage.Top = optionsText.Top + optionsText.Height + 20;

            var optionsStamp = new SignStampOptions();

            TestsSignStamp.PopulateOptions(optionsStamp);
            optionsStamp.Top = optionsImage.Top + optionsImage.Height + 20;

            var signSettings = new SignSettings();

            signSettings.FileInfo    = fileInfo;
            signSettings.SaveOptions = new SaveOptions()
            {
                OutputFilePath = signedFileName
            };
            signSettings.Options = new List <SignOptions>()
            {
                optionsBarcode, optionsQrCode, optionsDigital, optionsText, optionsImage, optionsStamp
            };
            var request = new CreateSignaturesRequest(signSettings);

            // Get and check result
            var response = SignatureApi.CreateSignatures(request);

            CheckResponse(response, testFile);

            //Download the signed file
            this.DownloadFile(signedFileName);
        }
        public static void PopulateOptions(SignDigitalOptions options)
        {
            options.SignatureType = SignatureTypeEnum.Digital;

            // set signature properties
            options.ImageFilePath       = @"Additional\signature_01.jpg";
            options.CertificateFilePath = @"Additional\SherlockHolmes.pfx";
            options.Password            = "******";

            // set signature position on a page
            options.Left   = 100;
            options.Top    = 100;
            options.Width  = 200;
            options.Height = 200;
            options.LocationMeasureType = SignImageOptions.LocationMeasureTypeEnum.Pixels;
            options.SizeMeasureType     = SignImageOptions.SizeMeasureTypeEnum.Pixels;
            options.RotationAngle       = 0;
            options.HorizontalAlignment = SignImageOptions.HorizontalAlignmentEnum.None;
            options.VerticalAlignment   = SignImageOptions.VerticalAlignmentEnum.None;
            options.Margin = new Padding()
            {
                All = 5
            };
            options.MarginMeasureType = SignImageOptions.MarginMeasureTypeEnum.Pixels;

            // set signature appearance
            options.Transparency = 0.8;

            //set pages for signing (each of these page settings could be used singly)
            options.AllPages   = false;
            options.Page       = 1;
            options.PagesSetup = new PagesSetup()
            {
                EvenPages   = false,
                FirstPage   = true,
                LastPage    = false,
                OddPages    = false,
                PageNumbers = new List <int?>()
                {
                    1
                }
            };
        }