PDF Rendering Engines in WPF Pdf Viewer
9 Jul 20266 minutes to read
WPF PDF Viewer renders the PDF pages through 2 different rendering engines.
- PDFium (Google Chrome’s PDF rendering engine)
- SfPdf (Syncfusion’s Own PDF rendering engine)
PDFium
PDFium is used in Google Chrome for rendering PDF files. It provides accurate and robust PDF rendering. It is the recommended PDF rendering engine.
NOTE
- From v16.3.0.x onwards, this PDFium rendering engine is the default rendering engine of Syncfusion® WPF PDF Viewer.
- From v20.4.0.x onwards, ARM64-based Pdfium assembly is generated for Syncfusion® WPF PDF Viewer control in applications that target ARM64 architecture.
- From v29.1.x onwards, Pdfium is upgraded to the new version which was built with the branch chromium/6945.
How PDFium works with Syncfusion’s PDF Viewer
- On running your WPF application, Syncfusion® PDF Viewer control generates a folder named
PDFiumin the application output path folder (for example: bin/release or bin/debug) at runtime. - Syncfusion® PDF Viewer control detects the architecture of the running machine automatically.
- Next, it creates another subfolder named “x64”, “x86”, or “arm64” based on the machine architecture.
- Extracts the PDFium binary (PDFium.dll) into the subfolder (x64, x86, or arm64) and consumes it to render PDF files.

NOTE
PDFium rendering is not supported in Windows XP operating system.
How to run PDFium in a restricted access environment
If there is any access restriction applied to the application output folder, then the Syncfusion® PDF Viewer control is unable to extract and consume the PDFium engine as mentioned above.
In that situation, you need to add the following steps to consume the PDFium rendering engine.
- Manually obtain the required PDFium assemblies (PDFium.dll) for the x64, x86, and arm64 architectures.
- Create a folder where your application can access, create & read files. For example, “d:\ThirdPartyBinaries\Pdfium".
- Place the obtained PDFium assemblies in the correct folder structure as shown below.
- Update the path of this folder to the ReferencePath property of PDF Viewer control, like shown in the following code sample.
- If ReferencePath is set, then PDF Viewer control extracts the PDFium binary inside that specified folder and consumes the PDFium rendering engine.
using System.Windows;
namespace PdfViewerDemo
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
# region Constructor
public MainWindow()
{
InitializeComponent();
pdfViewer.ReferencePath = @"D:\ThirdPartyBinaries\";
pdfViewer.Load("Sample.pdf");
}
#endregion
}
}NOTE
Place the
Sample.pdffile in the application’s output folder (for example, bin/release or bin/debug) so that it can be loaded successfully.
In the run time, the PDF viewer will check the custom folder path provided in the ReferencePath property. If you already placed the Pdfium assemblies in the custom folder path, it will refer to the already available assemblies from the location. It won’t generate the assemblies in the folder again.
You need to place the PDFium assembly in the correct folder structure as mentioned below.
- ThirdPartyBinaries
- Pdfium
- x86
- Pdfium.dll
- x64
- Pdfium.dll
- arm64
- Pdfium.dll
SfPdf
SfPdf is the Syncfusion’s own PDF rendering engine. Before v16.3.0.x, PDF Viewer control used this rendering engine as the default for rendering the PDF pages. If you face any compatibility issues with the Pdfium rendering engine or wish to use the SfPdf rendering engine in your environment, you may set the RenderingEngine property to SfPdf as shown in the following code sample.
NOTE
The recommended PDF rendering engine is PDFium.
using System.Windows;
using Syncfusion.Windows.PdfViewer;
namespace PdfViewerDemo
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
# region Constructor
public MainWindow()
{
InitializeComponent();
pdfViewer.RenderingEngine = PdfRenderingEngine.SfPdf;
pdfViewer.Load("Sample.pdf");
}
#endregion
}
}NOTE
You can refer to our WPF PDF Viewer feature tour page for its groundbreaking feature representations. You can also explore our WPF PDF Viewer example to know how to render and configure the pdfviewer.