【備忘録】C#でPDFを表示するには?(WebBrowserコントロール)

C#

皆さん、こんにちは!
上越市を拠点にし、「FA設備・装置開発」と「画像処理」に強い会社、NSIです!
私達は豊富な経験と専門知識で、各種業界の自動化・システム化のお手伝いをしています。

今回はC#でPDFを表示する方法をまとめていきます。
C#で簡単にPDFを表示したい! という方に、この記事が役に立てれば嬉しいです。

C#でPDFを表示するメリットとは?

PDFを表示するには、PDFビューアを使ったり、ブラウザで表示したりするのが一般的です。
上記の方法があるので、わざわざC#でPDFを表示する意味はないように思えますが、実はC#でPDFを表示できるというのは大きな利点です。

例えば、「ある検査が終わったら検査結果のPDFを生成して保存し、最新の結果を表示する」というようなシステムがあったとしましょう。
PDFビューアやブラウザを使用する場合、外部のソフトであるため、「最新のPDFを選択して表示する」という操作を人が行う必要があります。

しかし、C#でPDFを表示する場合、PDFの生成から表示までを1つのソフトとしてまとめて実行することができます。
そのため、「保存が終わったら最新のPDFを表示する」という処理を作成すれば、人が操作する必要はなくなります。

つまり、C#でPDFを表示するメリットとして、拡張性が高い というのが上げられます

C#でPDFを表示するのって意外と面倒?

ネットで「C# PDF 表示」と調べると、表示する方法はいくつか出てきます。
ただ、外部のSDKを使う方法がほとんどで、インストールや参照などを考えるとやや手間がかかります。

しかし!
WebBrowserコントロールを使うことで、外部SDKを使わず、簡単にPDFが表示できます。
WebBrowserはWebコンテンツを表示するための、VisualStudio標準のコントロールです。
動作としては、ブラウザ上でPDFを閲覧しているイメージとなります。

WebBrowserを使ってPDFを表示する

早速、WebBrowserでPDFを表示するプログラムを作成していきます。

1. 画面作成

まず、Windowsフォームアプリケーション(.NET Framework)のプロジェクトを作成します。
プロジェクトが作成できたら、以下の画面を作成します。

2. 処理記述

「button1」ボタンのクリックイベントに以下の処理を記述します。
ダイアログから選択したPDFファイルをWebBrowserコントロールに表示します。

private void button1_Click(object sender, EventArgs e)
{
    // ファイル選択ダイアログ
    using(OpenFileDialog ofd = new OpenFileDialog())
    {
        ofd.Filter = "PDFファイル(*.pdf)|*.pdf|すべてのファイル(*.*)|*.*";
        if(ofd.ShowDialog() == DialogResult.OK)
        {
            // ブラウザ表示用に先頭に「file:///」を付与
            string pdf = "file:///" + ofd.FileName;
            
            // 表示
            label1.Text = pdf;          // PDFのパス
            webBrowser1.Navigate(pdf);  // PDF
        }
    }
}

3. 処理実行

「読込」ボタンをクリックし、PDFファイルを選択します。
今回は会社案内を表示してみました。
複数ページあっても、問題なく表示することができました!

最後に

今回はWebBrowserコントロールを使って、C#で簡単にPDFを表示する方法についてまとめました。
外部SDKを使わないので、配布時のライセンスを気にしなくていいのもポイントです。

ここまで読んでいただき、ありがとうございました。
ご質問やご要望、ご相談などありましたら、下記お問い合わせフォームからお気軽にご連絡ください。
http://www.net-nsi.co.jp/toiawase.html

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