Export PDF in WPF

The following example shows how to convert a PDF file to an XpsDocument instance and attach it to WPF's DocumentViewer control.

PDF file exported to XpsDocument with GemBox.Pdf
Screenshot of PDF file exported to XpsDocument with GemBox.Pdf
<Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Export to XpsDocument Example" 
        SizeToContent="WidthAndHeight">

    <DockPanel>
        <Menu DockPanel.Dock="Top">
            <MenuItem Header="_File">
                <MenuItem Header="_Open" Click="MenuItem_Click" />
            </MenuItem>
        </Menu>
        <DocumentViewer x:Name="DocumentViewer"/>
    </DockPanel>

</Window>
using GemBox.Pdf;
using Microsoft.Win32;
using System.Windows;
using System.Windows.Xps.Packaging;

public partial class MainWindow : Window
{
    XpsDocument xpsDocument;

    public MainWindow()
    {
        InitializeComponent();

        ComponentInfo.SetLicense("FREE-LIMITED-KEY");
    }

    private void MenuItem_Click(object sender, RoutedEventArgs e)
    {
        OpenFileDialog fileDialog = new OpenFileDialog();
        fileDialog.Filter = "PDF files (*.pdf)|*.pdf";

        if (fileDialog.ShowDialog() == true)
        {
            using (var document = PdfDocument.Load(fileDialog.FileName))
            {
                // XpsDocument needs to stay referenced so that DocumentViewer can access additional required resources.
                // Otherwise, GC will collect/dispose XpsDocument and DocumentViewer will not work.
                this.xpsDocument = document.ConvertToXpsDocument(SaveOptions.Xps);

                this.DocumentViewer.Document = this.xpsDocument.GetFixedDocumentSequence();
            }
        }
    }
}
Imports GemBox.Pdf
Imports Microsoft.Win32
Imports System.Windows.Xps.Packaging

Class MainWindow

    Dim xpsDoc As XpsDocument

    Public Sub New()

        InitializeComponent()

        ComponentInfo.SetLicense("FREE-LIMITED-KEY")
    End Sub

    Private Sub MenuItem_Click(sender As Object, e As RoutedEventArgs)

        Dim fileDialog = New OpenFileDialog()
        fileDialog.Filter = "PDF files (*.pdf)|*.pdf"

        If (fileDialog.ShowDialog() = True) Then
            Using document = PdfDocument.Load(fileDialog.FileName)
                ' XpsDocument needs to stay referenced so that DocumentViewer can access additional required resources.
                ' Otherwise, GC will collect/dispose XpsDocument and DocumentViewer will not work.
                Me.xpsDoc = document.ConvertToXpsDocument(SaveOptions.Xps)

                Me.DocumentViewer.Document = Me.xpsDoc.GetFixedDocumentSequence()
            End Using
        End If

    End Sub
End Class

Export PDF to ImageSource in WPF

The following example shows how to convert a PDF page to an ImageSource instance and attach it to WPF's Image control, using GemBox.Pdf.

PDF page exported to ImageSource with GemBox.Pdf
Screenshot of PDF page exported to ImageSource with GemBox.Pdf
<Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Export to ImageSource Example" 
        SizeToContent="WidthAndHeight">

    <DockPanel>
        <Menu DockPanel.Dock="Top">
            <MenuItem Header="_File">
                <MenuItem Header="_Open" Click="MenuItem_Click" />
            </MenuItem>
        </Menu>
        <Border Margin="10" BorderBrush="Black" BorderThickness="1">
            <Image x:Name="ImageControl"/>
        </Border>
    </DockPanel>

</Window>
using GemBox.Pdf;
using Microsoft.Win32;
using System.Windows;

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        ComponentInfo.SetLicense("FREE-LIMITED-KEY");
    }

    private void MenuItem_Click(object sender, RoutedEventArgs e)
    {
        OpenFileDialog fileDialog = new OpenFileDialog();
        fileDialog.Filter = "PDF files (*.pdf)|*.pdf";

        if (fileDialog.ShowDialog() == true)
        {
            using (var document = PdfDocument.Load(fileDialog.FileName))
            {
                this.ImageControl.Source = document.ConvertToImageSource(SaveOptions.Image);
            }
        }
    }
}
Imports GemBox.Pdf
Imports Microsoft.Win32

Class MainWindow

    Public Sub New()

        InitializeComponent()

        ComponentInfo.SetLicense("FREE-LIMITED-KEY")
    End Sub

    Private Sub MenuItem_Click(sender As Object, e As RoutedEventArgs)

        Dim fileDialog = New OpenFileDialog()
        fileDialog.Filter = "PDF files (*.pdf)|*.pdf"

        If (fileDialog.ShowDialog() = True) Then
            Using document = PdfDocument.Load(fileDialog.FileName)
                Me.ImageControl.Source = document.ConvertToImageSource(SaveOptions.Image)
            End Using
        End If

    End Sub
End Class

See also


Next steps

GemBox.Pdf is a .NET component that enables developers to read, merge and split PDF files or execute low-level object manipulations from .NET applications in a simple and efficient way.

Download Buy