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(); }
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; } }
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); }