PDFRasterizer.NET 4.0 is now available. Supports .NET Core. Renders pixel-perfectly.
- How to use a system font for rendering text
- PDF to grayscale TIFF
- Display PDF in a WPF app and stay responsive - the code
- C# Print PDF documents from a WPF application
- Change colors of black-and-white TIFF after converting from PDF
- Convert PDF to PNG using WPF
- Convert PDF to an image using a dither matrix
- Font mapping
- Convert PDF with layers to image
- C# Print PDF Document
- Render PDF with ResolveFont event handler
- Render PDF to EMF
- Convert PDF to XPS
- Convert PDF to JPG in C#
- Convert PDF to multipage TIFF in C# .NET
- Convert multiple PDF pages to bitmap
- Render a PDF to bitmap
- Use multiple licenses
Convert PDF to PNG using WPF
In this code sample we take a look how you can create PNG images from a PDF using the Windows Presentation Foundation.
Code sample to convert PDF to PNG
static void Main(string[] args)
{
//read input from file
Document input;
using (FileStream fs = new FileStream(@"..\..\input.pdf", FileMode.Open, FileAccess.Read))
{
input = new Document(fs);
}
//the font names in the pdf have a different name than in the windows system.
//the resolveFont event is raised whenever a font needs to be resolved
RenderSettings renderSettings = new RenderSettings();
renderSettings.TextSettings.ResolveFont += new ResolveFontEventHandler(TextSettings_ResolveFont);
int count = input.Pages.Count;
double dpi = 300;
for (int i = 0; i < count; i++)
{
Page page = input.Pages[i];
System.Windows.Documents.FixedPage fixedPage = page.ConvertToWpf(renderSettings, new ConvertToWpfOptions(), new Summary());
// Create a new bitmap render target.
double width = page.Width * dpi / 72.0;
double height = page.Height * dpi / 72.0;
RenderTargetBitmap bmp = new RenderTargetBitmap((int)(width), (int)(height), dpi, dpi, System.Windows.Media.PixelFormats.Pbgra32);
// Render the fixed page into the bitmap target.
bmp.Render(fixedPage);
// Write the bitmap to file.
using (FileStream outStream = new FileStream(string.Format(@"..\..\output" + i + ".png"), FileMode.Create))
{
PngBitmapEncoder enc = new PngBitmapEncoder();
enc.Frames.Add(BitmapFrame.Create(bmp));
enc.Save(outStream);
}
// For some PDF documents this samples has a memory usage pattern that appears to be affected by a garbage collection issue in the
// Large Object Heap. See https://www.simple-talk.com/dotnet/.net-framework/the-dangers-of-the-large-object-heap/
// Strangely but true: calling GC.GetTotalMemory appears to be able to avoid that issue, so we do that here.
GC.GetTotalMemory(true);
}
}
static void TextSettings_ResolveFont(TextRenderSettings sender, ResolveFontEventArgs args)
{
System.Diagnostics.Trace.WriteLine(String.Format("font ({0}, {1}, {2})", args.PdfFontName, args.SystemFontName, args.FontPath));
if (args.FontLocation != FontLocation.System)
{
switch (args.PdfFontName)
{
case "Times-Roman":
args.SystemFontName = "Times New Roman";
break;
case "Times-Bold":
args.SystemFontName = "Times New Roman";
args.Bold = true;
break;
case "Times-Italic":
args.SystemFontName = "Times New Roman";
args.Italic = true;
break;
case "Helvetica":
args.SystemFontName = "Arial Unicode MS";
break;
case "Helvetica-Bold":
args.SystemFontName = "Arial Unicode MS";
args.Bold = true;
break;
case "Helvetica-Italic":
args.SystemFontName = "Arial Unicode MS";
args.Italic = true;
break;
}
}
}

Download PDFRasterizer.NET 3.0
We will send you a download link
Why do we ask your email address?
We send tips that speed up your evaluation
We let you know about bug fixes
You can always unsubscribe with one click
We never share your address with a 3rd party
Thank you for your download
We have sent an email with a download link.