diff --git a/EnvelopeGenerator.PdfEditor/Edit.cs b/EnvelopeGenerator.PdfEditor/Pdf.cs similarity index 72% rename from EnvelopeGenerator.PdfEditor/Edit.cs rename to EnvelopeGenerator.PdfEditor/Pdf.cs index c6abe5da..f0726b8f 100644 --- a/EnvelopeGenerator.PdfEditor/Edit.cs +++ b/EnvelopeGenerator.PdfEditor/Pdf.cs @@ -1,4 +1,6 @@ using iText.Kernel.Pdf; +using iText.Kernel.Pdf.Canvas; + #if NETFRAMEWORK using System.IO; using System; @@ -7,15 +9,15 @@ using System.Threading.Tasks; namespace EnvelopeGenerator.PdfEditor { - public static class Edit + public static class Pdf { - public static Edit FromMemory(byte[] documentBytes) + public static Pdf FromMemory(byte[] documentBytes) { - return new Edit(new MemoryStream(documentBytes), new MemoryStream()); + return new Pdf(new MemoryStream(documentBytes), new MemoryStream()); } } - public class Edit : IDisposable, IAsyncDisposable + public class Pdf : IDisposable, IAsyncDisposable where TInputStream : Stream where TOutputStream : Stream { @@ -25,7 +27,7 @@ namespace EnvelopeGenerator.PdfEditor private readonly PdfReader _reader; private readonly PdfWriter _writer; - public Edit(TInputStream inputStream, TOutputStream outputStream) + public Pdf(TInputStream inputStream, TOutputStream outputStream) { _inputStream = inputStream; _outputStream = outputStream; @@ -40,7 +42,7 @@ namespace EnvelopeGenerator.PdfEditor /// /// Accessing this property will close the underlying to ensure /// all changes are flushed to the stream. After accessing this property, the PDF document - /// can no longer be modified using this instance. + /// can no longer be modified using this instance. /// /// /// The instance that contains the updated PDF bytes. @@ -54,16 +56,33 @@ namespace EnvelopeGenerator.PdfEditor } } - public Edit Document(Action edit) + #region Edit methods + public Pdf Document(Action edit) { edit(_doc); return this; } + public Pdf Page(int pageIndex, Action design) + => Document(doc => + { + var page = doc.GetPage(pageIndex); + design(doc.GetPage(pageIndex)); + }); + + public Pdf Design(int pageIndex, Action design) + => Document(doc => + { + var page = doc.GetPage(pageIndex); + var canvas = new PdfCanvas(page); + design(canvas); + }); + #endregion + #region Finalizer private bool _disposed = false; - ~Edit() + ~Pdf() { // If Dispose is not called, clean up unmanaged resources Dispose(false); diff --git a/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs b/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs index c3537f81..950903c8 100644 --- a/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs +++ b/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs @@ -224,7 +224,7 @@ public class EnvelopeController : ViewControllerBase { if (er.Envelope!.Documents?.FirstOrDefault() is DocumentDto doc && doc.ByteData is not null) { - var edit = Edit.FromMemory(doc.ByteData).Draw(1, canvas => + var edit = Pdf.FromMemory(doc.ByteData).Draw(1, canvas => { canvas.SetStrokeColor(ColorConstants.RED); canvas.SetFillColor(ColorConstants.CYAN);