Foxit Quick PDF Library

Programmatically render PDF files in Windows Forms with .NET and C#

Foxit Quick PDF Library can render a PDF as an image so that you can place it in your .NET application. Sample code using C# is provided below.

private void Form1_Load(object sender, EventArgs e)
{
// Remember to initialize the library and call the 
// UnlockKey function with your license key before
// calling the following code. 

// Open PDF File
int Handle = DPL.DAOpenFile("C:\\sample.pdf", null);

// Get Total Number of Pages in a PDF File
int PageCount = DPL.DAGetPageCount(Handle);

int PageNo = 1;

// It will get Reference of page 1 from PDF file
int PageRefNo = DPL.DAFindPage(Handle, PageNo);

// You can change this parameter for Zoom In/Zoom Out purpose
int Zoom = 76;
double pageWidth = DPL.DAGetPageWidth(Handle, PageRefNo) / Zoom;
double pageHeight = DPL.DAGetPageHeight(Handle, PageRefNo) / Zoom;

// DPI use for rendering the page. Increase DPI will increate quality of image
int dpi = 92;

// Calculate Dimension of final output image
Bitmap b = new Bitmap(Convert.ToInt32(pageWidth * dpi), Convert.ToInt32(pageHeight * dpi));

// This will Draw render image on GDI
using (Graphics g = Graphics.FromImage(b))
{
IntPtr dc = (int)g.GetHdc();
qp.DARenderPageToDC(Handle, PageRefNo, dpi, dc);
g.ReleaseHdc((IntPtr)dc);
}

// Assign rendered image to PictureBox Control which will display PDF on Windows Form.
pictureBox1.Image = b;
pictureBox1.BorderStyle = BorderStyle.Fixed3D;
}

The above code will work correctly if you do not use the C# import class. If you are using the C# import class then it is not necessary to convert dc into an int as the import class accepts a IntPtr as one of the parameters for the DARenderPageToDC function. So the code would look like this instead.

IntPtr dc = g.GetHdc();
qp.DARenderPageToDC(Handle, PageRefNo, dpi, dc);
g.ReleaseHdc(dc);

This article refers to a deprecated product. If you are looking for support for Foxit PDF SDK, please click here.

Updated on May 16, 2022

Was this article helpful?
Thanks for your feedback. If you have a comment on how to improve the article, you can write it here: