Some test text!

Search
Hamburger Icon

UWP / Guides / 2. View a Document

Viewing a document in your UWP application

Prerequisites

Please refer to either Download and integrate manually or Integrate with NuGet guide .

Step 1: Update xaml

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>

Step 2: Add the viewer

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 initialize PDFNet and 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()
{
    this.InitializeComponent();
    pdftron.PDFNet.Initialize("your_key");
    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()
{
    this.InitializeComponent();
    pdftron.PDFNet.Initialize("your_key");
    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

Step 3: Adding Text Selection, Form Filling, and More

The basic viewer doesn't support text selection, for example, out of the box. For this, we will need the tools package from NuGet or the tools project contained in the download package.

NuGet

Manually

If you integrated PDFTron.UWP using NuGet then use the tools package PDFTron.UWP.Tools in the package manager.

Find your project in the Solution Explorer. Right Click on the project and click on Manage NuGet Packages.... In the package manager, select the Browse tab and search for PDFTron.UWP.Tools. Install this package.

pdftron.PDF.PDFViewCtrl MyPDFViewCtrl;
pdftron.PDF.Tools.ToolManager MyToolManager;

Inside the constructor for MainPage we now add one more call where we initialize the ToolManager.

public MainPage()
{ 
    this.InitializeComponent();
    pdftron.PDFNet.Initialize("your_key");
    MyPDFViewCtrl = new pdftron.PDF.PDFViewCtrl();
    PDFViewBorder.Child = MyPDFViewCtrl;
    MyToolManager = new pdftron.PDF.Tools.ToolManager(MyPDFViewCtrl);
    OpenButton.Click += OpenButton_Click;
}

This is all you need for text selection to work. The tools support many other operations, such as creating and adding basic shapes to the PDF document and editing form fields.

Next step

Customize

Get the answers you need: Chat with us