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
}
}