PDF is a popular format for creating read-only documents for sharing and printing. In general, PDF documents contain images in addition to text, and in certain circumstances, you may need to extract these photos while parsing the PDFs. This post will show you how to extract photos from PDF files programmatically using C#.
Step 1:Open visual studio and create a new project
Step 2: Install Syncfusion.Imaging.Pdf.Net.Core NuGet package
Step 3: Add one dummy pdf file to your project folder which contain images
Step 4: Create one folder inside your project solution to store images which is an extract from the pdf
Step 5: Create a view with one button to read pdf file from the folder
Copy and paste the below code into your view
@{Html.BeginForm("ExtractImages", "Home", FormMethod.Get); { <div> <input type="submit" value="Extract Image" style="width:150px;height:27px" class="btn btn-info" /> </div> } Html.EndForm(); }
Step 6: Copy and paste the below code into the controller to read the pdf path from the folder
using Microsoft.AspNetCore.Hosting; private readonly IHostingEnvironment _hostingEnvironment; public HomeController(IHostingEnvironment hostingEnvironment) { _hostingEnvironment = hostingEnvironment; }
Step 7: Copy and paste the below code into your controller to extract the image from the pdf
public void ExtractImages() { //Load the PDF document string path = _hostingEnvironment.WebRootPath + "/PDF/sample-pdf-with-images.pdf"; Stream stream = new FileStream(path, FileMode.Open); PdfLoadedDocument loadedDocument = new PdfLoadedDocument(stream); Image[] images = null; for (int i = 0; i < loadedDocument.Pages.Count; i++) { images = null; //Get the page PdfLoadedPage page = loadedDocument.Pages[i] as PdfLoadedPage; //Extract images images = page.ExtractImages(); for (int j = 0; j < images.Length; j++) { //Save the image to memory stream MemoryStream imageStream = new MemoryStream(); images[j].Save(imageStream, ImageFormat.Png); //Save the image to local file imageStream.Position = 0; string Imagepath = _hostingEnvironment.WebRootPath + "/ExtractImage/"; FileStream file = new FileStream(Imagepath + "Image" + i.ToString() + ".png", FileMode.Create, FileAccess.Write); imageStream.WriteTo(file); file.Close(); imageStream.Close(); } } //Dispose the stream stream.Dispose(); }
OUTPUT