EVO Classic PDF to Image Converter for .NET
EVO Classic PDF to Image Converter for .NET can be used in any type of .NET application to convert PDF pages to images. The integration with existing .NET applications is extremely easy and no installation is necessary. The downloaded archive contains the assembly for .NET and a demo application.
The full C# source code for the demo application is available in the Samples folder. The converter produces .NET Image objects during conversion that you can save to image files or use for further processing. You can also customize the color space and resolution used during rasterization operation.
The Classic library is compatible with .NET Framework, .NET Core and .NET Standard 2.0 on Windows platforms. For applications that need to run on both Windows and Linux platforms, you can use the EvoPdf Next PDF to Image for .NET that enables the conversion of PDF pages to PNG images, allowing you to control the color space, resolution and background transparency of the generated images.
The full EvoPdf Next Library for .NET can be used on Windows, Linux, macOS, Azure and Docker platforms to create, edit and merge PDF documents, convert HTML to PDF or images, convert Word, Excel, RTF and Markdown to PDF, extract text and images from PDF documents, search for text in PDF documents and convert PDF pages to images.
The code below was taken from the PDF to Image Converter demo application available for download in the PDF to Image converter archive. In this sample an instance of the PdfToImageConverter class is constructed and used to rasterize the PDF document pages to images.
Form1.csC#
private void btnConvertToImages_Click(object sender, EventArgs e)
{
if (pdfFileTextBox.Text.Trim().Equals(String.Empty))
{
MessageBox.Show("Please choose a source PDF file", "Choose PDF file", MessageBoxButtons.OK);
return;
}
// the source pdf file
string pdfFileName = pdfFileTextBox.Text.Trim();
// start page number
int startPageNumber = int.Parse(textBoxStartPage.Text.Trim());
// end page number
// when it is 0 the conversion will continue up to the end of document
int endPageNumber = 0;
if (textBoxEndPage.Text.Trim() != String.Empty)
endPageNumber = int.Parse(textBoxEndPage.Text.Trim());
// create the converter object and set the user options
PdfToImageConverter pdfToImageConverter = new PdfToImageConverter();
// set the color space of the resulted images
pdfToImageConverter.ColorSpace = SelectedColorSpace();
// set the resolution of the resulted images
pdfToImageConverter.Resolution = int.Parse(textBoxResolution.Text);
// the demo output directory
string outputDirectory = Path.Combine(Application.StartupPath, @"DemoFiles\Output");
Cursor = Cursors.WaitCursor;
// set the handler to be called when a page was converted
pdfToImageConverter.PageConvertedEvent += pdfToImageConverter_PageConvertedEvent;
string outputTiffFileName = System.IO.Path.Combine(outputDirectory, "pdftoimage.tiff");
try
{
if (multipageTiffCheckBox.Checked)
{
// save the PDF as a multipage TIFF image having a frame for each converted PDF page
pdfToImageConverter.ConvertPdfToTiffFile(pdfFileName, startPageNumber, endPageNumber, outputTiffFileName);
// uncomment the line below to convert PDF to a mulitpage TIFF image in memory
//byte[] tiffImageBytes = pdfToImageConverter.ConvertPdfToTiff(pdfFileName, startPageNumber, endPageNumber);
}
else
{
// call the converter to raise the PageConvertedEvent event when a PDF page is converted
// the pdfToImageConverter_PageConvertedEvent handler below will be executed for each converted PDF page
pdfToImageConverter.ConvertPdfPagesToImageInEvent(pdfFileName, startPageNumber, endPageNumber);
// Alternatively you can use the ConvertPdfPagesToImage() and ConvertPdfPagesToImageFile() methods
// to convert the PDF pages to images in memory or to image files in a directory
// uncomment the line below to convert PDF pages in memory to an array of PdfPageImage objects
//PdfPageImage[] pdfPageImages = pdfToImageConverter.ConvertPdfPagesToImage(pdfFileName, startPageNumber, endPageNumber);
// uncomment the lines below to convert PDF pages to image files in a directory
//string outputDirectory = System.IO.Path.Combine(Application.StartupPath, @"DemoFiles\Output");
//pdfToImageConverter.ConvertPdfPagesToImageFile(pdfFileName, startPageNumber, endPageNumber, outputDirectory, "pdfpage");
}
}
catch (Exception ex)
{
// The conversion failed
MessageBox.Show(String.Format("An error occurred. {0}", ex.Message), "Error");
return;
}
finally
{
// uninstall the event handler
pdfToImageConverter.PageConvertedEvent -= pdfToImageConverter_PageConvertedEvent;
Cursor = Cursors.Arrow;
}
try
{
if (multipageTiffCheckBox.Checked)
{
System.Diagnostics.Process.Start(outputTiffFileName);
}
else
{
System.Diagnostics.Process.Start(outputDirectory);
}
}
catch (Exception ex)
{
MessageBox.Show(string.Format("Cannot open output folder. {0}", ex.Message));
return;
}
}
/// <summary>
/// The PageConvertedEvent event handler called after when a PDF page was converted to image
/// The event is raised when the ConvertPdfPagesToImageInEvent() method is used
/// </summary>
/// <param name="args">The handler argument containing the PDF page image and page number</param>
void pdfToImageConverter_PageConvertedEvent(PageConvertedEventArgs args)
{
// get the image object and page number from even handler argument
Image pdfPageImageObj = args.PdfPageImage.ImageObject;
int pageNumber = args.PdfPageImage.PageNumber;
// save the PDF page image to a PNG file
string outputPageImage = Path.Combine(Application.StartupPath, @"DemoFiles\Output", "pdfpage_" + pageNumber + ".png");
pdfPageImageObj.Save(outputPageImage, ImageFormat.Png);
args.PdfPageImage.Dispose();
}