diff --git a/EnvelopeGenerator.PdfEditor/EnvelopeGenerator.PdfEditor.csproj b/EnvelopeGenerator.PdfEditor/EnvelopeGenerator.PdfEditor.csproj
index 4d69b8cd..55423075 100644
--- a/EnvelopeGenerator.PdfEditor/EnvelopeGenerator.PdfEditor.csproj
+++ b/EnvelopeGenerator.PdfEditor/EnvelopeGenerator.PdfEditor.csproj
@@ -21,4 +21,8 @@
+
+
+
+
diff --git a/EnvelopeGenerator.PdfEditor/Pdf.cs b/EnvelopeGenerator.PdfEditor/Pdf.cs
index 4ec8d7dd..91c82d0c 100644
--- a/EnvelopeGenerator.PdfEditor/Pdf.cs
+++ b/EnvelopeGenerator.PdfEditor/Pdf.cs
@@ -1,10 +1,14 @@
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas;
+using EnvelopeGenerator.Domain.Interfaces;
+using iText.Kernel.Colors;
+using iText.Kernel.Geom;
#if NETFRAMEWORK
-using System.IO;
using System;
+using System.IO;
using System.Threading.Tasks;
+using System.Collections.Generic;
#endif
namespace EnvelopeGenerator.PdfEditor
@@ -76,6 +80,40 @@ namespace EnvelopeGenerator.PdfEditor
});
#endregion
+ public Pdf Background(IEnumerable signatures)
+ where TSignature : ISignature
+ {
+ foreach (var signature in signatures)
+ Page(signature.Page, page =>
+ {
+ var canvas = new PdfCanvas(page);
+ double inchFactor = 72;
+ double magin = .2;
+ double x = (signature.X - .7 - magin) * inchFactor;
+ double y = (signature.Y - .5 - magin) * inchFactor;
+ double width = 1.9500000000000002 * inchFactor;
+ double height = 2.52 * inchFactor;
+
+ double bottomLineLength = 2.5;
+
+ Rectangle pageSize = page.GetPageSize();
+
+ canvas.ConcatMatrix(1, 0, 0, -1, 0, pageSize.GetHeight());
+
+ // draw background
+ canvas.SetFillColor(new DeviceRgb(222, 220, 215))
+ .Rectangle(x, y, width, height)
+ .Fill();
+
+ // draw bottom line
+ canvas.SetFillColor(new DeviceRgb(204, 202, 198))
+ .Rectangle(x, y + height - bottomLineLength, width, bottomLineLength)
+ .Fill();
+ });
+
+ return this;
+ }
+
#region Finalizer
private bool _disposed = false;
diff --git a/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs b/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs
index 1cf42060..e0669b93 100644
--- a/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs
+++ b/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs
@@ -10,8 +10,6 @@ using EnvelopeGenerator.Domain.Constants;
using EnvelopeGenerator.PdfEditor;
using EnvelopeGenerator.Web.Extensions;
using EnvelopeGenerator.Web.Models;
-using iText.Kernel.Colors;
-using iText.Kernel.Pdf.Canvas;
using MediatR;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.Cookies;
@@ -224,21 +222,7 @@ public class EnvelopeController : ViewControllerBase
{
if (er.Envelope!.Documents?.FirstOrDefault() is DocumentDto doc && doc.ByteData is not null)
{
- using var pdf = Pdf.FromMemory(doc.ByteData).Design(1, canvas =>
- {
- canvas.SetFillColor(new DeviceRgb(135, 62, 35));
-
- canvas.Rectangle(100, 500, 200, 100);
-
- canvas.Fill();
-
- canvas.SetFillColor(new DeviceRgb(222, 220, 215));
-
- canvas.SetStrokeColor(new DeviceRgb(135, 62, 35));
- canvas.Circle(300, 500, 100);
- canvas.FillStroke();
- canvas.Fill();
- });
+ using var pdf = Pdf.FromMemory(doc.ByteData).Background(doc.Elements!);
doc.ByteData = pdf.ExportAsBytes();
diff --git a/EnvelopeGenerator.Web/wwwroot/js/annotation.js b/EnvelopeGenerator.Web/wwwroot/js/annotation.js
index ba8c3a12..0c45232c 100644
--- a/EnvelopeGenerator.Web/wwwroot/js/annotation.js
+++ b/EnvelopeGenerator.Web/wwwroot/js/annotation.js
@@ -5,35 +5,6 @@ async function createAnnotations(document) {
for (let element of document.elements) {
const annotParams = await getAnnotationParams(element.left, element.top);
const page = element.page - 1
-
- //#region background
- if (annotParams.background) {
- let background = annotParams.background;
- const id_background = PSPDFKit.generateInstantId();
- const annotation_background = new PSPDFKit.Annotations.WidgetAnnotation({
- id: id_background,
- pageIndex: page,
- formFieldName: id_background,
- backgroundColor: background?.backgroundColor ? new PSPDFKit.Color(background.backgroundColor) : null,
- blendMode: 'normal',
- boundingBox: new PSPDFKit.Geometry.Rect(background),
- fontSize: 8,
- borderStyle: background.borderStyle,
- borderWidth: background.borderWidth,
- borderColor: background?.borderColor ? new PSPDFKit.Color(background.borderColor) : null
- });
-
- const formFieldBackground = new PSPDFKit.FormFields.ButtonFormField({
- name: id_background,
- annotationIds: PSPDFKit.Immutable.List([annotation_background.id]),
- value: "",
- readOnly: true
- });
-
- signatures.push(annotation_background)
- signatures.push(formFieldBackground)
- }
- //#endregion
}
for (let element of document.elements) {
diff --git a/EnvelopeGenerator.Web/wwwroot/js/envelope-api.js b/EnvelopeGenerator.Web/wwwroot/js/envelope-api.js
index 17dd4938..7e6eecd2 100644
--- a/EnvelopeGenerator.Web/wwwroot/js/envelope-api.js
+++ b/EnvelopeGenerator.Web/wwwroot/js/envelope-api.js
@@ -72,6 +72,7 @@ async function getAnnotationParams(leftInInch = 0, topInInch = 0, inchToPointFac
annot.top += topInInch - 0.5;
annot.top *= inchToPointFactor;
}
+
return annotParams;
}