diff --git a/EnvelopeGenerator.Application/Common/Interfaces/Doc/IPdfPageImageRenderer.cs b/EnvelopeGenerator.Application/Common/Interfaces/Doc/IPdfPageImageRenderer.cs
index 8dcbf9b3..08473724 100644
--- a/EnvelopeGenerator.Application/Common/Interfaces/Doc/IPdfPageImageRenderer.cs
+++ b/EnvelopeGenerator.Application/Common/Interfaces/Doc/IPdfPageImageRenderer.cs
@@ -22,7 +22,7 @@ public interface IPdfPageImageRenderer
///
///
///
- byte[] ComposeSignaturePreviewPng(ISignatureInkPayload element);
+ Stream ComposeSignaturePreviewPng(ISignatureInkPayload element);
///
///
@@ -51,4 +51,16 @@ public static class PdfPageImageRendererExtensions
return inkBytes;
}
-}
\ No newline at end of file
+
+ public static byte[] ComposeSignaturePreviewPngBytes(this IPdfPageImageRenderer renderer, ISignatureInkPayload element)
+ {
+ using var stream = renderer.ComposeSignaturePreviewPng(element);
+
+ if (stream is MemoryStream memoryStream)
+ return memoryStream.ToArray();
+
+ using var copy = new MemoryStream();
+ stream.CopyTo(copy);
+ return copy.ToArray();
+ }
+}
diff --git a/EnvelopeGenerator.Infrastructure.Doc/PdfPageImageRenderer.cs b/EnvelopeGenerator.Infrastructure.Doc/PdfPageImageRenderer.cs
index 7aa15145..4f541a09 100644
--- a/EnvelopeGenerator.Infrastructure.Doc/PdfPageImageRenderer.cs
+++ b/EnvelopeGenerator.Infrastructure.Doc/PdfPageImageRenderer.cs
@@ -57,7 +57,7 @@ public class PdfPageImageRenderer : IPdfPageImageRenderer
return Task.FromResult>(results);
}
- public byte[] ComposeSignaturePreviewPng(ISignatureInkPayload element)
+ public Stream ComposeSignaturePreviewPng(ISignatureInkPayload element)
{
const double sigW = 1.77 * 72;
const double sigH = 1.96 * 72;
@@ -137,9 +137,10 @@ public class PdfPageImageRenderer : IPdfPageImageRenderer
var renderOptions = PdfPageRenderingParameters.CreateWithResolution(400f);
using DXBitmap bitmap = rasterProcessor.CreateDXBitmap(1, renderOptions);
- using var pngStream = new MemoryStream();
+ var pngStream = new MemoryStream();
bitmap.Save(pngStream, DXImageFormat.Png);
- return pngStream.ToArray();
+ pngStream.Position = 0;
+ return pngStream;
}
private static System.Drawing.RectangleF FitImageContain(System.Drawing.RectangleF area, byte[] imageBytes)
@@ -176,4 +177,4 @@ public class PdfPageImageRenderer : IPdfPageImageRenderer
return isJpeg;
}
-}
\ No newline at end of file
+}
diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Controllers/DevSignatureInkController.cs b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Controllers/DevSignatureInkController.cs
index 902983b1..081e2399 100644
--- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Controllers/DevSignatureInkController.cs
+++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Controllers/DevSignatureInkController.cs
@@ -90,8 +90,8 @@ public class DevSignatureInkController(
if (!renderer.IsSupportedImageFormat(element.Ink!))
return StatusCode(StatusCodes.Status415UnsupportedMediaType);
- var composedBytes = renderer.ComposeSignaturePreviewPng(element);
- return File(composedBytes, "image/png", $"signature-composed-{id}.png");
+ var composedStream = renderer.ComposeSignaturePreviewPng(element);
+ return File(composedStream, "image/png", $"signature-composed-{id}.png");
}
private bool IsEndpointEnabled()