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();
pdfToImageConverter.LicenseKey = "0F5PX0tPX09fSVFPX0xOUU5NUUZGRkZfTw==";
// 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();
}