Articles in this section
Category / Section

How to convert PDF to JPG in WPF PDFViewer?

3 mins read

WPF PDF Viewer control supports viewing, reviewing, and printing PDF files in WPF applications. The PDF Viewer also provides a way to convert PDF files into images in a format such as .jpg, .png, and .tiff in C# and VB.NET using the `ExportAsImage` API. You can use the images in your application to create thumbnails or cover page for a document, and more.

Convert a page of the PDF file into JPEG image

You can refer to the following steps for performing the same:

Step 1: Include the following namespace in the MainWindow.xaml.cs file.

C#

using Syncfusion.Windows.PdfViewer;
using System.Windows.Media.Imaging;
using System.IO;

 

VB.NET

Imports Syncfusion.Windows.PdfViewer
Imports System.Windows.Media.Imaging
Imports System.IO

 

Step 2: Using the following code snippet, the PDF page can be exported as JPEG image.

C#

PdfViewerControl pdfViewer = new PdfViewerControl();
//Load the input PDF file
PdfLoadedDocument loadedDocument = new PdfLoadedDocument("../../Data/Barcode.pdf");
pdfViewer.Load(loadedDocument);
//Export the particular PDF page as image at the page index of 0
BitmapSource image = pdfViewer.ExportAsImage(0);
//Setup the output path
string output = @"..\..\Output\Image";
if (image != null)
{
   //Initialize the new Jpeg bitmap encoder
   BitmapEncoder encoder = new JpegBitmapEncoder();
   //Create the bitmap frame using the bitmap source and add it to the encoder
   encoder.Frames.Add(BitmapFrame.Create(image));
   //Create the file stream for the output in the desired image format
   FileStream stream = new FileStream(output + ".Jpeg", FileMode.Create);
   //Save the stream, so that the image will be generated in the output location
   encoder.Save(stream);
}
//Dispose the document
loadedDocument.Dispose();
loadedDocument = null;

 

VB.NET

Dim pdfViewer As PdfViewerControl = New PdfViewerControl()
'Load the input PDF file
Dim loadedDocument As PdfLoadedDocument = New PdfLoadedDocument("../../Data/Barcode.pdf")
pdfViewer.Load(loadedDocument)
'Export the particular PDF page as image at the page index of 0
Dim image As BitmapSource = pdfViewer.ExportAsImage(0)
'Setup the output path
Dim output As String = "..\..\Output\Image"
If image IsNot Nothing Then
'Initialize the new Jpeg bitmap encoder
Dim encoder As BitmapEncoder = New JpegBitmapEncoder()
'Create the bitmap frame using the bitmap source and add it to the encoder.
encoder.Frames.Add(BitmapFrame.Create(image))
'Create the file stream for the output in the desired image format.
Dim stream As FileStream = New FileStream(output & ".Jpeg", FileMode.Create)
'Save the stream, so that the image will be generated in the output location.
encoder.Save(stream)
End If
'Dispose the document.
loadedDocument.Dispose()
loadedDocument = Nothing

Convert a specific range of pages of the PDF file into JPEG images

You can refer to the following steps for performing the same:

Step 1: Include the following namespace in the MainWindow.xaml.cs file.

C#

using Syncfusion.Windows.PdfViewer;
using System.Windows.Media.Imaging;
using System.IO;

 

VB.NET

Imports Syncfusion.Windows.PdfViewer
Imports System.Windows.Media.Imaging
Imports System.IO

 

Step 2: Using the following code snippet, the specific range of pages of a PDF file can be exported as JPEG images.

C#

PdfViewerControl pdfViewer = new PdfViewerControl();
//Load the input PDF file
PdfLoadedDocument loadedDocument = new PdfLoadedDocument("../../Data/Barcode.pdf");
pdfViewer.Load(loadedDocument);
//Export all the pages as images at the specific page range
BitmapSource[] image = pdfViewer.ExportAsImage(0, loadedDocument.Pages.Count - 1);
//Set up the output path
string output = @"..\..\Output\Image";
if (image != null)
{
   for (int i = 0; i < image.Length; i++)
   {
      //Initialize the new Jpeg bitmap encoder
      BitmapEncoder encoder = new JpegBitmapEncoder();
      //Create the bitmap frame using the bitmap source and add it to the encoder
      encoder.Frames.Add(BitmapFrame.Create(image[i]));
      //Create the file stream for the output in the desired image format
      FileStream stream = new FileStream(output + i.ToString() + ".Jpeg", FileMode.Create);
      //Save the stream, so that the image will be generated in the output location
      encoder.Save(stream);
   }
}
//Dispose the document
loadedDocument.Dispose();
loadedDocument = null;

 

VB.NET

Dim pdfViewer As PdfViewerControl = New PdfViewerControl()
'Load the input PDF file
Dim loadedDocument As PdfLoadedDocument = New PdfLoadedDocument("../../Data/Barcode.pdf")
pdfViewer.Load(loadedDocument)
'Export all the pages as images at the specific page range
Dim image As BitmapSource() = pdfViewer.ExportAsImage(0, loadedDocument.Pages.Count - 1)
'Set up the output path
Dim output As String = "..\..\Output\Image"
If image IsNot Nothing Then
For i As Integer = 0 To image.Length - 1
'Initialize the new Jpeg bitmap encoder
Dim encoder As BitmapEncoder = New JpegBitmapEncoder()
'Create the bitmap frame using the bitmap source and add it to the encoder
encoder.Frames.Add(BitmapFrame.Create(image(i)))
'Create the file stream for the output in the desired image format
Dim stream As FileStream = New FileStream(output & i.ToString() & ".Jpeg", FileMode.Create)
'Save the stream, so that the image will be generated in the output location
encoder.Save(stream)
Next
End If
'Dispose the document
loadedDocument.Dispose()
loadedDocument = Nothing

View sample in GitHub.

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please  to leave a comment
Access denied
Access denied