Back to Devexpress

How to: Load a PDF Document from a Stream

wpf-114458-controls-and-libraries-pdf-viewer-examples-file-operations-how-to-load-a-pdf-document-from-a-stream.md

latest2.7 KB
Original Source

How to: Load a PDF Document from a Stream

  • May 17, 2019

This example shows how to use the DocumentViewerControl.DocumentSource property to load a document from the stream. The stream is obtained from the assembly resources.

Important

When you load a document, the input stream should not be closed until the control finishes using a document (PdfViewerControl.DetachStreamOnLoadComplete is set to false by default).

If you want to close the stream after a document is loaded into the PDF Viewer, set the PdfViewerControl.DetachStreamOnLoadComplete property to true. However, in this case the high rendering performance is not guaranteed.

View Example

csharp
using System.IO;
using System.Reflection;
using System.Windows;

namespace LoadPDFDocument
{

    public partial class MainWindow : Window
    {

        public MainWindow()
        {
            InitializeComponent();
            Stream stream = GetResourceStream("LoadPDFDocument.Demo.pdf");
            Viewer.DocumentSource = stream;
        }
        static Stream GetResourceStream(string resourceName)
        {
            return Assembly.GetExecutingAssembly().
            GetManifestResourceStream(resourceName);
        }
    }
}
vb
Imports System.IO
Imports System.Reflection
Imports System.Windows

Namespace LoadPDFDocument

    Partial Public Class MainWindow
        Inherits Window

        Public Sub New()
            InitializeComponent()
            Dim stream As Stream = GetResourceStream("LoadPDFDocument.Demo.pdf")
            Viewer.DocumentSource = stream
        End Sub
        Private Shared Function GetResourceStream(ByVal resourceName As String) As Stream
            Return System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName)
        End Function
    End Class
End Namespace
xaml
<Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:dxpdf="http://schemas.devexpress.com/winfx/2008/xaml/pdf"
        x:Class="LoadPDFDocument.MainWindow"
        Title="MainWindow" Height="350" Width="525">

    <Grid>
        <dxpdf:PdfViewerControl x:Name="Viewer"/>
    </Grid>
</Window>