예제 #1
0
        private void btnSavePosition_Click(object sender, EventArgs e)
        {
            if (_sigPositions.ContainsKey(_pageNumber))
            {
                _sigPositions.Remove(_pageNumber);
            }

            var sigPosition = new SignaturePosition(pagePreview1.SigWidth, pagePreview1.SigHeight,
                                                    pagePreview1.SigPosX, pagePreview1.SigPosY);

            _sigPositions.Add(_pageNumber, sigPosition);

            UpdateSavePositionInfo();
        }
예제 #2
0
        private void UpdateSignPlacementProperties(PdfOperationsDesigner designer, IFunctionData data)
        {
            SignaturePosition signaturePosition = data.Properties["Signature placement"].GetValue <SignaturePosition>();

            designer.Properties[PropertyNames.SignPlacement].Value = signaturePosition;
            switch (signaturePosition)
            {
            case SignaturePosition.FormField:
                designer.Properties[PropertyNames.SignFieldName].Value       = data.Properties["Field name"].Value;
                designer.Properties[PropertyNames.SignBackgroundImage].Value = data.Properties["Background image"].Value;
                break;

            case SignaturePosition.OnPage:
                designer.Properties[PropertyNames.SignPositionX].Value       = data.Properties["Position X (mm)"].Value;
                designer.Properties[PropertyNames.SignPositionY].Value       = data.Properties["Position Y (mm)"].Value;
                designer.Properties[PropertyNames.SignWidth].Value           = data.Properties["Width (mm)"].Value;
                designer.Properties[PropertyNames.SignHeight].Value          = data.Properties["Height (mm)"].Value;
                designer.Properties[PropertyNames.SignBackgroundImage].Value = data.Properties["Background image"].Value;
                designer.Properties[PropertyNames.SignPage].Value            = data.Properties["Page"].Value;
                break;
            }
        }
예제 #3
0
        private void InitializeSignProperties(VisibleDependency visibleDependency, ref int propertyOrder)
        {
            Action <bool> applyVisibility = (isVisible) =>
            {
                SignaturePosition signPlacementValue = Properties[PropertyNames.SignPlacement].GetValue <SignaturePosition>();

                Properties[PropertyNames.SignSignedAt].IsVisible         = isVisible;
                Properties[PropertyNames.SignReason].IsVisible           = isVisible;
                Properties[PropertyNames.SignLockAfterSigning].IsVisible = isVisible;
                Properties[PropertyNames.SignPlacement].IsVisible        = isVisible;
                Properties[PropertyNames.SignFieldName].IsVisible        = (isVisible && signPlacementValue == SignaturePosition.FormField);
                Properties[PropertyNames.SignPositionX].IsVisible        = (isVisible && signPlacementValue == SignaturePosition.OnPage);
                Properties[PropertyNames.SignPositionY].IsVisible        = (isVisible && signPlacementValue == SignaturePosition.OnPage);
                Properties[PropertyNames.SignWidth].IsVisible            = (isVisible && signPlacementValue == SignaturePosition.OnPage);
                Properties[PropertyNames.SignHeight].IsVisible           = (isVisible && signPlacementValue == SignaturePosition.OnPage);
                Properties[PropertyNames.SignBackgroundImage].IsVisible  = (isVisible && (signPlacementValue == SignaturePosition.FormField || signPlacementValue == SignaturePosition.OnPage));
                Properties[PropertyNames.SignPage].IsVisible             = (isVisible && signPlacementValue == SignaturePosition.OnPage);
            };
            EventHandler updateVisibility = (sender, args) => applyVisibility(visibleDependency.Visible);

            visibleDependency.VisibleChanged += (visible) => applyVisibility(visible);

            Property signedAt = Properties.AddOrRetrieve(PropertyNames.SignSignedAt, typeof(string), ValueUseOption.RuntimeRead, string.Empty);

            signedAt.Order       = propertyOrder++;
            signedAt.Description = "Location where the signing took place.";
            signedAt.Validations.Add(new RequiredValidator());

            Property reason = Properties.AddOrRetrieve(PropertyNames.SignReason, typeof(string), ValueUseOption.RuntimeRead, string.Empty);

            reason.Order       = propertyOrder++;
            reason.Description = "Reason for signing the document.";
            reason.Validations.Add(new RequiredValidator());

            Property lockAfterSigning = Properties.AddOrRetrieve(PropertyNames.SignLockAfterSigning, typeof(bool), ValueUseOption.DesignTime, false);

            lockAfterSigning.Order       = propertyOrder++;
            lockAfterSigning.Description = "Lock the document to prevent further changes.";

            Properties.InitializeCertificateProperties(
                PropertyNames.SignCertificateSource,
                PropertyNames.SignCertificateFilePath,
                PropertyNames.SignCertificateFilePassword,
                PropertyNames.SignCertificate,
                ref propertyOrder,
                visibleDependency);

            Property placement = Properties.AddOrRetrieve(PropertyNames.SignPlacement, typeof(SignaturePosition), ValueUseOption.DesignTime, SignaturePosition.Hidden);

            placement.Order         = propertyOrder++;
            placement.Description   = "Where to put the signature in the document.";
            placement.ValueChanged += updateVisibility;

            Property fieldName = Properties.AddOrRetrieve(PropertyNames.SignFieldName, typeof(string), ValueUseOption.RuntimeRead, string.Empty);

            fieldName.Order       = propertyOrder++;
            fieldName.Description = "Form field name to place the signature in.";
            fieldName.Validations.Add(new RequiredValidator());

            Property positionX = Properties.AddOrRetrieve(PropertyNames.SignPositionX, typeof(int), ValueUseOption.RuntimeRead, 0);

            positionX.Order       = propertyOrder++;
            positionX.Description = "X coordinate of the signature.";

            Property positionY = Properties.AddOrRetrieve(PropertyNames.SignPositionY, typeof(int), ValueUseOption.RuntimeRead, 0);

            positionY.Order       = propertyOrder++;
            positionY.Description = "Y coordinate of the signature.";

            Property width = Properties.AddOrRetrieve(PropertyNames.SignWidth, typeof(int), ValueUseOption.RuntimeRead, 100);

            width.Order       = propertyOrder++;
            width.Description = "Width of the signature box.";

            Property height = Properties.AddOrRetrieve(PropertyNames.SignHeight, typeof(int), ValueUseOption.RuntimeRead, 50);

            height.Order       = propertyOrder++;
            height.Description = "Height of the signature box.";

            Property backgroundImage = Properties.AddOrRetrieve(PropertyNames.SignBackgroundImage, typeof(string), ValueUseOption.RuntimeRead, string.Empty);

            backgroundImage.Order       = propertyOrder++;
            backgroundImage.Description = "Path to an image file to use as a background for the signature.";
            backgroundImage.Editor      = typeof(FilePathEditor);

            Property page = Properties.AddOrRetrieve(PropertyNames.SignPage, typeof(int), ValueUseOption.RuntimeRead, 1);

            page.Order       = propertyOrder++;
            page.Description = "Page on which to include the visible signature.";
            page.Validations.Add(new RangeValidator(1, int.MaxValue));

            applyVisibility(visibleDependency.Visible);
        }