Load Document
- 2 minutes to read
This help topic describes how to load PDF files from different sources (file path, stream, or file URI) and specify document display settings.
Load a PDF File
Initialize the DocumentSource property with a UriPdfDocumentSource or StreamPdfDocumentSource object to load a PDF file by its URI or from a stream.
You can load a PDF file directly by its name if it is located in the Resources\Raw folder. Since the DocumentSource
property is a content property, you can skip DocumentSource
tags in your markup:
<dx:PdfViewer x:Name="pdfViewer">
<dx:UriPdfDocumentSource Uri="TestDoc.pdf"/>
</dx:PdfViewer>
The PdfViewer
control can convert a UriPdfDocumentSource object from a string path. This means you can specify the DocumentSource
property as follows:
<dx:PdfViewer x:Name="pdfViewer1" DocumentSource="TestDoc.pdf"/>
<dx:PdfViewer x:Name="pdfViewer2" DocumentSource="https://dxtestsite.com/testdoc.pdf"/>
Instead of creating a UriPdfDocumentSource
object, you can directly assign a Uri object to the DocumentSource
property:
pdfViewer.DocumentSource = new Uri("TestDoc.pdf", UriKind.RelativeOrAbsolute);
You can also call the following methods to load PDF files from different sources:
- PdfDocumentSource.FromFile(String)
- PdfDocumentSource.FromStream(Stream)
- PdfDocumentSource.FromUri(Uri)
pdfViewer.DocumentSource = PdfDocumentSource.FromFile("TestDoc.pdf");
Call the SetDocumentSourceAsync method to load a PDF document to the viewer asynchronously:
public MainPage() {
InitializeComponent();
Init();
}
async void Init() {
await pdfViewer.SetDocumentSourceAsync("TestDoc.pdf");
}
Once the document is successfully loaded, the PDF viewer raises the DocumentLoaded event.
The CurrentPageNumber property allows you to navigate to a specific page. To obtain the total number of document pages, use the PageCount property.
To close the current document, call the PdfViewer.CloseDocument method or use the PdfViewerCommands.CloseDocument command.
Known Issues
A PDF document that contains JPX images may require significant resources to be processed and decoded, which can lead to performance degradation.
Invoke File Explorer
Call the PdfViewer.ShowOpenFileDialogAsync method or bind to the PdfViewerCommands.ShowOpenFileDialog command to invoke the file explorer (platform dependent) to select a PDF file.
<Grid RowDefinitions="40,*">
<dx:DXToolbar Grid.Row="0">
<dx:ToolbarButton Icon="open" Command="{Binding Commands.ShowOpenFileDialog, Source={x:Reference pdfViewer}}"/>
</dx:DXToolbar>
<dx:PdfViewer x:Name="pdfViewer" Grid.Row="1" ShowToolbar="False"/>
</Grid>
Open Protected Files
The PDF viewer shows the following dialog message that suggests to enter the password to open a protected PDF file:
If you want to specify a protected document password without using the built-in input form, handle the PdfViewer.PasswordRequested event and set the Password property in the event handler.