diff --git a/PDF-to-image/Convert-PDF-Pages-to-Single-Image-.NET/Convert-PDF-Pages-to-Single-Image.csproj b/PDF-to-image/Convert-PDF-Pages-to-Single-Image-.NET/Convert-PDF-Pages-to-Single-Image.csproj
new file mode 100644
index 0000000..6f914bb
--- /dev/null
+++ b/PDF-to-image/Convert-PDF-Pages-to-Single-Image-.NET/Convert-PDF-Pages-to-Single-Image.csproj
@@ -0,0 +1,13 @@
+
+
+
+ Exe
+ net8.0
+ Convert_PDF_to_Image
+
+
+
+
+
+
+
diff --git a/PDF-to-image/Convert-PDF-Pages-to-Single-Image-.NET/Convert-PDF-Pages-to-Single-Image.sln b/PDF-to-image/Convert-PDF-Pages-to-Single-Image-.NET/Convert-PDF-Pages-to-Single-Image.sln
new file mode 100644
index 0000000..8b67d4d
--- /dev/null
+++ b/PDF-to-image/Convert-PDF-Pages-to-Single-Image-.NET/Convert-PDF-Pages-to-Single-Image.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.9.34622.214
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Convert-PDF-Pages-to-Single-Image", "Convert-PDF-Pages-to-Single-Image.csproj", "{DD88C92F-A41B-4A24-8106-54E6B93E70B0}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {DD88C92F-A41B-4A24-8106-54E6B93E70B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DD88C92F-A41B-4A24-8106-54E6B93E70B0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DD88C92F-A41B-4A24-8106-54E6B93E70B0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DD88C92F-A41B-4A24-8106-54E6B93E70B0}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {27AA5CE1-6AA8-4360-B3FB-540F5965D098}
+ EndGlobalSection
+EndGlobal
diff --git a/PDF-to-image/Convert-PDF-Pages-to-Single-Image-.NET/Input.pdf b/PDF-to-image/Convert-PDF-Pages-to-Single-Image-.NET/Input.pdf
new file mode 100644
index 0000000..8773442
Binary files /dev/null and b/PDF-to-image/Convert-PDF-Pages-to-Single-Image-.NET/Input.pdf differ
diff --git a/PDF-to-image/Convert-PDF-Pages-to-Single-Image-.NET/Program.cs b/PDF-to-image/Convert-PDF-Pages-to-Single-Image-.NET/Program.cs
new file mode 100644
index 0000000..f1a2dc3
--- /dev/null
+++ b/PDF-to-image/Convert-PDF-Pages-to-Single-Image-.NET/Program.cs
@@ -0,0 +1,84 @@
+using SkiaSharp;
+using Syncfusion.PdfToImageConverter;
+using System;
+using System.IO;
+
+namespace Convert_PDF_to_Image
+{
+ internal class Program
+ {
+ static void Main(string[] args)
+ {
+ //Initialize PDF to Image converter.
+ PdfToImageConverter imageConverter = new PdfToImageConverter();
+ //Load the PDF document as a stream
+ FileStream inputStream = new FileStream("../../../Input.pdf", FileMode.Open, FileAccess.ReadWrite);
+ imageConverter.Load(inputStream);
+ //Convert PDF to Image.
+ Stream[] imageStreams = imageConverter.Convert(0, imageConverter.PageCount - 1, false, false);
+ CombineImages(imageStreams, "Output.png");
+
+ //Dispose the image streams.
+ foreach (Stream imageStream in imageStreams)
+ imageStream.Dispose();
+ }
+ ///
+ /// Combines multiple images from streams into a single image.
+ ///
+ /// Streams containing the images to be combined.
+ /// Output path where the combined image will be saved.
+ public static void CombineImages(Stream[] imageStreams, string outputPath)
+ {
+ if (imageStreams == null || imageStreams.Length == 0)
+ throw new ArgumentException("No images to combine.");
+
+ // Load all images and get their dimensions
+ SKBitmap[] bitmaps = new SKBitmap[imageStreams.Length];
+ int maxWidth = 0;
+ int totalHeight = 0;
+ int margin = 20;
+
+ for (int i = 0; i < imageStreams.Length; i++)
+ {
+ imageStreams[i].Position = 0;
+ bitmaps[i] = SKBitmap.Decode(imageStreams[i]);
+ maxWidth = Math.Max(maxWidth, bitmaps[i].Width);
+ totalHeight += bitmaps[i].Height + margin;
+ }
+
+ // Add margins to the total width and height
+ int combinedWidth = maxWidth + 2 * margin;
+ // Add margin at the bottom
+ totalHeight += margin;
+
+ // Create a new bitmap with the combined dimensions
+ using (SKBitmap combinedBitmap = new SKBitmap(combinedWidth, totalHeight))
+ {
+ using (SKCanvas canvas = new SKCanvas(combinedBitmap))
+ {
+ // Set background color to the specified color
+ canvas.Clear(new SKColor(240, 240, 240));
+
+ // Draw each bitmap onto the canvas
+ int yOffset = margin;
+ for (int i = 0; i < bitmaps.Length; i++)
+ {
+ int xOffset = (combinedWidth - bitmaps[i].Width) / 2; // Center the image horizontally
+ canvas.DrawBitmap(bitmaps[i], new SKPoint(xOffset, yOffset));
+ yOffset += bitmaps[i].Height + margin; // Add margin between rows
+ }
+
+ // Save the combined bitmap to the output stream
+ using (SKImage image = SKImage.FromBitmap(combinedBitmap))
+ {
+ using (SKData data = image.Encode(SKEncodedImageFormat.Png, 100))
+ {
+ using (FileStream stream = File.OpenWrite(outputPath))
+ data.SaveTo(stream);
+ }
+ }
+ }
+ }
+ }
+ }
+}