[UWP][PDF] PDFファイルを表示する

スポンサーリンク

今回はPDFファイルを表示する方法について見ていきます。

PDFファイルはImageコントロールへの表示が可能です。よってMainPageは以下のようにデザインします。

MainPageのデザイン

 

はじめに、今回のコードを示します。

// PDFドキュメント変数
private Windows.Data.Pdf.PdfDocument pdfDocument;

private async void btnPdfOpen_Click(object sender, RoutedEventArgs e)
{
    // PDFファイルを開くためのピッカーを準備
    var picker = new Windows.Storage.Pickers.FileOpenPicker();
    picker.FileTypeFilter.Add(".pdf");
    Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();

    if (file != null)
    {
        try
        {
            // PDFファイルを読み込む
            pdfDocument = await Windows.Data.Pdf.PdfDocument.LoadFromFileAsync(file);
        }
        catch
        {

        }
    }

    if ( pdfDocument != null)
    {
        // 1ページ目を読み込む
        using (Windows.Data.Pdf.PdfPage page = pdfDocument.GetPage(0))
        {
            // ビットマップイメージの作成
            var stream = new Windows.Storage.Streams.InMemoryRandomAccessStream();
            await page.RenderToStreamAsync(stream);
            Windows.UI.Xaml.Media.Imaging.BitmapImage src = new Windows.UI.Xaml.Media.Imaging.BitmapImage();

            // Imageオブジェクトにsrcをセット
            imgPdf.Source = src;

            // srcに作成したビットマップイメージを流し込む
            await src.SetSourceAsync(stream);
        }
    }
}

それではコードを見ていきましょう。

PDFドキュメントは、Windows.Data.Pdf名前空間にあるPdfDocumentクラスで取り扱うことができます。

はじめにFilePickerを準備して、ユーザーにPDFファイルを選択させます。続いて、選択されたPDFファイルをPdfDocumentクラスが持つLoadFromFileAsyncメソッドで読み込みます。

読み込んだPdfDocumentがnullでないことを確認し、PDFの1ページ目を読み込みます。ページの読み込みは、PdfDocumentクラスのGetPageメソッドを使用します。

ページの読み込みが完了したら、Bitmapイメージにします。

Bitmapイメージが作成できたら、あとは画面に配置しているImageオブジェクトに表示をします。

実行例を以下に示します。

PDF読み込みの実行例

Please follow and like us:

コメント

タイトルとURLをコピーしました