Some test text!
UWP / Guides / Custom viewer
In this tutorial you will be able to display a PDF file in PDFViewCtrl
. To begin working with PDFViewCtrl
, you must have first added it to your project and initialized the library (get started with UWP ).
Now that the project is set up, let us add a PDFViewCtrl
as the main feature of the project. First, we need to set up the page to contain the PDFViewCtrl
. We want to add a main viewing area for the PDFViewCtrl
, and an area at the bottom where we can later add in some options. Open up “MainPage.xaml” and find the Grid element. Add some row definitions as follows:
<Grid Background="{StaticResource
ApplicationPageBackgroundThemeBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
</Grid>
The second row will be used for our options bar, while the first row will use whatever space is left to display the PDFViewCtrl.
To this Grid, let's add a Border which will host the PDFViewCtrl
and then a stack panel with a button to open a document.
<Grid Background="{StaticResource
ApplicationPageBackgroundThemeBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Border x:Name="PDFViewBorder" Grid.Row="0"/>
<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right" Margin="5">
<Button x:Name="OpenButton">Open</Button>
</StackPanel>
</Grid>
Now, we want to add the PDFViewCtrl
to the app. We do this in “MainPage.xaml.cs”. Open up “MainPage.xaml.cs” and add a member variable that references a PDFViewCtrl
.
public sealed partial class MainPage : Page
{
pdftron.PDF.PDFViewCtrl MyPDFViewCtrl;
...
}
Next, we need to create a PDFViewCtrl
, so let's do this in the constructor of the MainPage. We also need to make the PDFViewCtrl
the child of the PDFViewBorder.
public MainPage()
{
...
MyPDFViewCtrl = new pdftron.PDF.PDFViewCtrl();
PDFViewBorder.Child = MyPDFViewCtrl;
}
We also have to add a handler for the Open button. Let's do that in MainPage's constructor after we have created a PDFViewCtrl
.
public MainPage()
{
...
MyPDFViewCtrl = new pdftron.PDF.PDFViewCtrl();
PDFViewBorder.Child = MyPDFViewCtrl;
OpenButton.Click += OpenButton_Click;
}
void OpenButton_Click(object sender, RoutedEventArgs e)
{
throw new NotImplementedException();
}
Inside this click function, we need to open a Document. First, let's include two new namespaces that we need for the file picker and for the storage file.
using Windows.Storage;
using Windows.Storage.Pickers;
Also, OpenButton_Click needs to be async in order to handle some of the asynchronous API's needed here. So, replace the old OpenButton_Click with the following:
async void OpenButton_Click(object sender, RoutedEventArgs e)
{
// Get a file from the file picker.
FileOpenPicker fileOpenPicker = new FileOpenPicker();
fileOpenPicker.ViewMode = PickerViewMode.List;
fileOpenPicker.FileTypeFilter.Add(".pdf");
StorageFile file = await fileOpenPicker.PickSingleFileAsync();
// Create a PDFDocument and use it as the source for the PDFViewCtrl
if (file != null)
{
Windows.Storage.Streams.IRandomAccessStream stream = await
file.OpenAsync(FileAccessMode.ReadWrite);
pdftron.PDF.PDFDoc doc = new pdftron.PDF.PDFDoc(stream);
MyPDFViewCtrl.SetDoc(doc);
}
}
Build and launch the app and we should now have a very basic PDF document viewer.
Do note that in Windows 8.1, the file picker works differently. Please see this guide for how to use file pickers in Windows Phone 8.1: https://msdn.microsoft.com/en-us/library/windows/apps/dn642086(v=vs.105).aspx
Trial setup questions? Ask experts on Discord
Need other help? Contact Support
Pricing or product questions? Contact Sales