diff --git a/EnvelopeGenerator.Application/Common/Configurations/SignatureFieldParams.cs b/EnvelopeGenerator.Application/Common/Configurations/SignatureFieldParams.cs new file mode 100644 index 00000000..719f25cd --- /dev/null +++ b/EnvelopeGenerator.Application/Common/Configurations/SignatureFieldParams.cs @@ -0,0 +1,17 @@ +namespace EnvelopeGenerator.Application.Common.Configurations; + +/// +/// +/// +public class SignatureFieldParams +{ + /// + /// + /// + public double Width { get; init; } = 1.77; + + /// + /// + /// + public double Height { get; init; } = 1.96; +} diff --git a/EnvelopeGenerator.Application/DependencyInjection.cs b/EnvelopeGenerator.Application/DependencyInjection.cs index 08188fc9..485f9b32 100644 --- a/EnvelopeGenerator.Application/DependencyInjection.cs +++ b/EnvelopeGenerator.Application/DependencyInjection.cs @@ -49,6 +49,7 @@ public static class DependencyInjection services.Configure(config.GetSection(nameof(DispatcherParams))); services.Configure(config.GetSection(nameof(MailParams))); + services.Configure(config.GetSection(nameof(SignatureFieldParams))); services.Configure(config.GetSection(nameof(AuthenticatorParams))); services.Configure(config.GetSection(nameof(TotpSmsParams))); services.Configure(config.GetSection(nameof(ESignParams))); diff --git a/EnvelopeGenerator.Application/Envelopes/Commands/CreateEnvelopeCommandHandler.cs b/EnvelopeGenerator.Application/Envelopes/Commands/CreateEnvelopeCommandHandler.cs index 6e7386a4..888d5b20 100644 --- a/EnvelopeGenerator.Application/Envelopes/Commands/CreateEnvelopeCommandHandler.cs +++ b/EnvelopeGenerator.Application/Envelopes/Commands/CreateEnvelopeCommandHandler.cs @@ -47,6 +47,8 @@ public class CreateEnvelopeCommandHandler : IRequestHandler _provider.GetRequiredService>().Value; + private SignatureFieldParams SignatureFieldParams => _provider.GetRequiredService>().CurrentValue; + private IConfigService ConfigService => _provider.GetRequiredService(); private IMediator Mediator => _provider.GetRequiredService(); @@ -444,8 +446,8 @@ public class CreateEnvelopeCommandHandler : IRequestHandler UiLocalizer @inject IStringLocalizer ModelLocalizer +@inject IOptionsMonitor SignatureFieldOptions @@ -598,10 +601,11 @@ [SupplyParameterFromQuery(Name = "bootstrapToken")] public string? BootstrapToken { get; set; } - // ── Constants ── - // Signature field size in PDF points (fixed): 1.77" × 1.96" - const double SigWidthPt = 1.77 * 72; // 127.44 pt - const double SigHeightPt = 1.96 * 72; // 141.12 pt + // ── Signature field size (configurable) ── + double SigWidthInches => SignatureFieldOptions.CurrentValue.Width; + double SigHeightInches => SignatureFieldOptions.CurrentValue.Height; + double SigWidthPt => SigWidthInches * 72.0; + double SigHeightPt => SigHeightInches * 72.0; // CssClass for JS click coordinate helper const string ViewerCssClass = "sender-editor-pdf-viewer"; diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Program.cs b/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Program.cs index c70a4814..24e5a89d 100644 --- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Program.cs +++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Program.cs @@ -6,6 +6,7 @@ using DevExpress.XtraReports.Web.Extensions; using DevExpress.DataAccess.Web; using DevExpress.XtraReports.Services; using System.Globalization; +using EnvelopeGenerator.Application.Common.Configurations; var builder = WebAssemblyHostBuilder.CreateDefault(args); @@ -31,6 +32,8 @@ builder.Services.AddScoped(sp => new HttpClient // Configuration Options builder.Services.Configure(opts => builder.Configuration.GetSection(PdfViewerOptions.SectionName).Bind(opts)); +builder.Services.Configure(opts => + builder.Configuration.GetSection(nameof(SignatureFieldParams)).Bind(opts)); // Business Services builder.Services.AddScoped(); diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/appsettings.json b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/appsettings.json index 06decfb2..09a95e4c 100644 --- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/appsettings.json +++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/appsettings.json @@ -58,6 +58,10 @@ "MainCanvasEnableHiDPI": true, "ZoomStepPercentage": 5 }, + "SignatureFieldParams": { + "Width": 1.77, + "Height": 1.96 + }, "DocumentService": { "BaseUrl": "http://172.24.12.39:9393" }, diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/wwwroot/appsettings.json b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/wwwroot/appsettings.json index 23b77e53..b233e456 100644 --- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/wwwroot/appsettings.json +++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/wwwroot/appsettings.json @@ -14,5 +14,9 @@ "RenderingOpacity": 0.85, "ThumbnailRenderDelay": 50, "ZoomStepPercentage": 5 + }, + "SignatureFieldParams": { + "Width": 1.77, + "Height": 1.96 } }