New to Telerik Document Processing? Start a free 30-day trial
Export RadFixedPage to Image
Updated on Jun 5, 2026
Environment
| Product Version | Product | Author |
|---|---|---|
| below 2020.2.513 or above* | RadPdfProcessing | Martin Velikov |
| below 2020.2.513 or above* | RadPdfViewer | Martin Velikov |
* Due to the new RadPdfViewer document model transition, there is a difference in the implementation between different assembly versions.
Description
How to export a RadFixedPage to a TIFF file.
Solution
To achieve this, use the RadPdfViewer control from the UI for WPF suite to create images from the RadFixedDocument pages by using the ThumbnailFactory class.
The COM threading model for the application must be a single-threaded apartment (STA). Place a
[STAThread]attribute on the entry point method.
Example 1: Assembly Versions below 2020.2.513
csharp
[STAThread]
private static void Main(string[] args)
{
PdfFormatProvider pdfProcessingProvider = new PdfFormatProvider();
RadFixedDocument document = GetRadFixedDocument(pdfProcessingProvider);
byte[] data = pdfProcessingProvider.Export(document);
RadPdfViewer pdfViewer = new RadPdfViewer();
PdfFormatProvider pdfViewerProvider = new PdfFormatProvider(new MemoryStream(data), FormatProviderSettings.ReadAllAtOnce);
pdfViewer.Document = pdfViewerProvider.Import();
int pageNumber = 0;
RadFixedPage page = pdfViewer.Document.Pages[pageNumber];
ThumbnailFactory factory = new ThumbnailFactory();
ImageSource imageSource = factory.CreateThumbnail(page, page.Size);
Image image = new Image();
image.Source = imageSource;
Grid container = new Grid();
container.Background = Brushes.White;
container.Children.Add(image);
container.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
container.Arrange(new Rect(new Point(0, 0), container.DesiredSize));
RenderTargetBitmap bitmap = new RenderTargetBitmap((int)PageLayoutHelper.GetActualWidth(page), (int)PageLayoutHelper.GetActualHeight(page), 96, 96, PixelFormats.Pbgra32);
bitmap.Render(container);
string exportedFileName = "Exported.tiff";
using (FileStream fileStream = new FileStream(exportedFileName, FileMode.Create))
{
BitmapEncoder encoder = new TiffBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bitmap));
encoder.Save(fileStream);
}
}
Example 2: Assembly Versions 2020.2.513 or Later
csharp
[STAThread]
private static void Main(string[] args)
{
PdfFormatProvider pdfProcessingProvider = new PdfFormatProvider();
RadFixedDocument document = GetRadFixedDocument(pdfProcessingProvider);
int pageNumber = 0;
RadFixedPage page = document.Pages[pageNumber];
ThumbnailFactory factory = new ThumbnailFactory();
ImageSource imageSource = factory.CreateThumbnail(page, page.Size);
Image image = new Image();
image.Source = imageSource;
Grid container = new Grid();
container.Background = Brushes.White;
container.Children.Add(image);
container.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
container.Arrange(new Rect(new Point(0, 0), container.DesiredSize));
RenderTargetBitmap bitmap = new RenderTargetBitmap((int)PageLayoutHelper.GetActualWidth(page), (int)PageLayoutHelper.GetActualHeight(page), 96, 96, PixelFormats.Pbgra32);
bitmap.Render(container);
string exportedFileName = "Exported.tiff";
using (FileStream fileStream = new FileStream(exportedFileName, FileMode.Create))
{
BitmapEncoder encoder = new TiffBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bitmap));
encoder.Save(fileStream);
}
}