フッターコンテンツにスキップ
IRONPDFの使用

VB .NET PictureBoxでPDFを表示する:WindowsフォームでPDFページを画像としてレンダリングする

PDFファイルをPictureBoxコントロールで表示する

PictureBox コントロールで PDF ファイルを直接表示することは、PictureBox が BMP、PNG、TIF、JPG などの画像形式しかサポートしていないためできません。 解決策は、PDFページをビットマップ画像としてレンダリングし、Windows Formsアプリケーションで表示することです。

このチュートリアルでは、IronPDFの強力なラスタライズ機能を使ってPDFドキュメントを変換して表示する方法を紹介します。 さらに参考文献が必要な場合、またはカバーされていない質問に対する答えがある場合は、通常IronPDFの公式リファレンスドキュメントでより多くの情報を見つけることができます。

今IronPDFを始めましょう。
green arrow pointer

なぜ PictureBox は PDF ファイルを直接表示できないのですか?

Microsoft .NET Framework Windows Forms アプリケーションの PictureBox<//code> コントロールは、画像ファイルのみを表示するように設計されています。 開発者が PDF ドキュメントを PictureBox に読み込もうとすると、PDF フォーマットは特殊なレンダリングを必要とするため、エラーが発生します。 COM コンポーネントを通じて Adobe Reader や Adobe PDF Reader を使用するソリューションもありますが、この方法では Adobe Acrobat のような外部ソフトウェアに依存することになります。 プログラムの制限を解決する別の方法がよくあります。

よりクリーンなアプローチとして、IronPdfを使用して各PDFページをビットマップ画像としてレンダリングします。 この方法は、ユーザーがデスクトップシステムにAdobe Acrobatをダウンロードしたりインストールしたりしなくても、どの.NETアプリケーションでも機能します。 このプロセスでは、PDF ページを PictureBox がネイティブで表示できる画像形式に変換し、PNG、TIF、およびその他の標準形式への出力をサポートします。

PDFビューア用のWindowsフォームプロジェクトをセットアップする方法は?

Visual Studioで新しいWindows Formsアプリケーションプロジェクトを作成します。 ツールボックスからPictureBoxコントロールをフォームに追加し、ページをブラウズするためのナビゲーションボタンも追加します。 NuGetパッケージマネージャで "IronPDF "を検索し、インストールをクリックしてIronPDFをインストールしてください。

VB .NET Display PDF in PictureBox:WindowsフォームでPDFページを画像としてレンダリング:イメージ1 - IronPDFをインストールする

このSDKは、PDFファイルを読み込み、レンダリングし、画像に変換するために必要なすべてのメソッドを提供します。

次のコード例は、VB NETのPictureBox機能でPDFを表示するためのコントロールを持つ基本的なフォームのセットアップを示しています:

Imports IronPDF
Imports System.Drawing

Public Class PdfViewerForm
    Private currentPdf As PdfDocument
    Private currentPageIndex As Integer = 0
    Private pageImages() As IronSoftware.Drawing.AnyBitmap

    Private Sub PdfViewerForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' Form initialization code
        PictureBox1.SizeMode = PictureBoxSizeMode.Zoom
    End Sub
End Class
Imports IronPDF
Imports System.Drawing

Public Class PdfViewerForm
    Private currentPdf As PdfDocument
    Private currentPageIndex As Integer = 0
    Private pageImages() As IronSoftware.Drawing.AnyBitmap

    Private Sub PdfViewerForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' Form initialization code
        PictureBox1.SizeMode = PictureBoxSizeMode.Zoom
    End Sub
End Class
VB .NET

空白フォーム UI の例

VB .NET Display PDF in PictureBox:WindowsフォームでPDFページを画像としてレンダリング:画像2 - 使用可能な空白のウィンドウズフォームの例

このコードは、PDFビューアコントロールの基礎を確立します。 PdfDocumentオブジェクトは読み込まれたPDF文書を保持し、pageImagesは各PDFページのレンダリングされたビットマップ画像を格納します。 SizeModeプロパティは、ページを表示するときに自動ズームを可能にします。 これは、プログラム全体の重要な基礎となります。

PDFページをPictureBoxに読み込んで表示するには?

PDF ドキュメントを読み込んで表示するには、各 PDF ページを PictureBox がレンダリングできるビットマップに変換する必要があります。 IronPdfのToBitmapメソッドはこの変換プロセスを効率的に処理し、さまざまな画像フォーマットや品質設定をサポートします。

Private Sub LoadPdfDocument(filePath As String)
    ' Load the PDF document from file path
    currentPdf = PdfDocument.FromFile(filePath)
    ' Convert all PDF pages to bitmap images
    pageImages = currentPdf.ToBitmap()
    ' Display the first page
    If pageImages IsNot Nothing AndAlso pageImages.Length > 0 Then
        DisplayPage(0)
    End If
End Sub

Private Sub DisplayPage(pageIndex As Integer)
    If pageImages IsNot Nothing AndAlso pageIndex < pageImages.Length Then
        ' Create new Bitmap from the rendered page
        Dim newBitmap As New Bitmap(pageImages(pageIndex).GetStream())
        PictureBox1.Image = newBitmap
        currentPageIndex = pageIndex
        lblPageNumber.Text = $"Page {pageIndex + 1} of {pageImages.Length}"
    End If
End Sub

Private Sub btnOpen_Click(sender As Object, e As EventArgs) Handles btnOpen.Click
    Using openDialog As New OpenFileDialog()
        openDialog.Filter = "PDF Files|*.pdf"
        If openDialog.ShowDialog() = DialogResult.OK Then
            LoadPdfDocument(openDialog.FileName)
        End If
    End Using
End Sub
Private Sub LoadPdfDocument(filePath As String)
    ' Load the PDF document from file path
    currentPdf = PdfDocument.FromFile(filePath)
    ' Convert all PDF pages to bitmap images
    pageImages = currentPdf.ToBitmap()
    ' Display the first page
    If pageImages IsNot Nothing AndAlso pageImages.Length > 0 Then
        DisplayPage(0)
    End If
End Sub

Private Sub DisplayPage(pageIndex As Integer)
    If pageImages IsNot Nothing AndAlso pageIndex < pageImages.Length Then
        ' Create new Bitmap from the rendered page
        Dim newBitmap As New Bitmap(pageImages(pageIndex).GetStream())
        PictureBox1.Image = newBitmap
        currentPageIndex = pageIndex
        lblPageNumber.Text = $"Page {pageIndex + 1} of {pageImages.Length}"
    End If
End Sub

Private Sub btnOpen_Click(sender As Object, e As EventArgs) Handles btnOpen.Click
    Using openDialog As New OpenFileDialog()
        openDialog.Filter = "PDF Files|*.pdf"
        If openDialog.ShowDialog() = DialogResult.OK Then
            LoadPdfDocument(openDialog.FileName)
        End If
    End Using
End Sub
VB .NET

PDFをフォームに表示

VB .NET Display PDF in PictureBox:WindowsフォームでPDFページを画像としてレンダリング:画像3 - 私たちのビューアに表示される入力PDFの例

LoadPdfDocumentメソッドは、PdfDocument.FromFileを使用して、ユーザーが選択したファイル名を使用して、指定されたパスからPDFファイルを読み込みます。 そして、ToBitmapメソッドは、1回の操作ですべてのページをビットマップ画像に変換します。 各ビットマップは、PictureBox の Image プロパティに直接割り当てて表示できます。 このアプローチでは、レンダリングされたすべてのページを配列に格納することで、複数ページのPDF文書を扱います。 Visual Studioデザイナーの適切なタブをクリックして、フォームの外観を編集することもできます。

PDFのページ間を移動するには?

ページナビゲーションを実装することで、ユーザーはPDF文書のすべてのページを閲覧できるようになります。 次のコード例は、"前へ"と"次へ"ボタンの機能を示しています:

Private Sub btnPrevious_Click(sender As Object, e As EventArgs) Handles btnPrevious.Click
    If currentPageIndex > 0 Then
        DisplayPage(currentPageIndex - 1)
    End If
End Sub

Private Sub btnNext_Click(sender As Object, e As EventArgs) Handles btnNext.Click
    If pageImages IsNot Nothing AndAlso currentPageIndex < pageImages.Length - 1 Then
        DisplayPage(currentPageIndex + 1)
    End If
End Sub
Private Sub btnPrevious_Click(sender As Object, e As EventArgs) Handles btnPrevious.Click
    If currentPageIndex > 0 Then
        DisplayPage(currentPageIndex - 1)
    End If
End Sub

Private Sub btnNext_Click(sender As Object, e As EventArgs) Handles btnNext.Click
    If pageImages IsNot Nothing AndAlso currentPageIndex < pageImages.Length - 1 Then
        DisplayPage(currentPageIndex + 1)
    End If
End Sub
VB .NET

出力

VB .NET Display PDF in PictureBox:WindowsフォームでPDFページを画像としてレンダリング:画像4 - ボタンで2ページ目に移動する

これらのイベントハンドラは、エラーを防ぐためにナビゲートする前に境界をチェックします。 IsNot Nothingチェックは、ナビゲーションを試みる前にPDF文書が読み込まれたことを確実にします。 このパターンは、複数ページの表示をサポートする完全なPDFビューアを構築するのに適しています。

PDFドキュメントを保存および印刷する機能を追加するには?

多くの Windows Forms アプリケーションは、PDF 文書を印刷したり、レンダリングしたページを画像ファイルとして保存したりする必要があります。 IronPdfはその包括的なAPIを通して両方の操作をサポートします。 この機能を使用することで、システムのセキュリティが損なわれたり、印刷マージンを計算するために複雑な計算が必要になったりすることはありません。

Private Sub btnPrint_Click(sender As Object, e As EventArgs) Handles btnPrint.Click
    If currentPdf IsNot Nothing Then
        Dim printDialog As New PrintDialog()
        If printDialog.ShowDialog() = DialogResult.OK Then
            currentPdf.Print()
        End If
    End If
End Sub

Private Sub btnSaveImage_Click(sender As Object, e As EventArgs) Handles btnSave.Click
    If PictureBox1.Image IsNot Nothing Then
        Using saveDialog As New SaveFileDialog()
            saveDialog.Filter = "PNG Image|*.png|JPEG Image|*.jpg|TIF Image|*.tif"
            If saveDialog.ShowDialog() = DialogResult.OK Then
                PictureBox1.Image.Save(saveDialog.FileName)
            End If
        End Using
    End If
End Sub
Private Sub btnPrint_Click(sender As Object, e As EventArgs) Handles btnPrint.Click
    If currentPdf IsNot Nothing Then
        Dim printDialog As New PrintDialog()
        If printDialog.ShowDialog() = DialogResult.OK Then
            currentPdf.Print()
        End If
    End If
End Sub

Private Sub btnSaveImage_Click(sender As Object, e As EventArgs) Handles btnSave.Click
    If PictureBox1.Image IsNot Nothing Then
        Using saveDialog As New SaveFileDialog()
            saveDialog.Filter = "PNG Image|*.png|JPEG Image|*.jpg|TIF Image|*.tif"
            If saveDialog.ShowDialog() = DialogResult.OK Then
                PictureBox1.Image.Save(saveDialog.FileName)
            End If
        End Using
    End If
End Sub
VB .NET

印刷ダイアログ

VB .NET Display PDF in PictureBox:WindowsフォームでPDFページを画像としてレンダリング:画像5 - 印刷ボタンの動作例

印刷機能はIronPdfの組み込み印刷メソッドを使用し、Microsoft Windowsの印刷インフラと統合します。 保存機能は、ユーザーが選択した形式の画像ファイルとして現在のページをエクスポートします。 これらの機能により、PDFビューアは文書管理アプリケーションに適しています。

結論

IronPDF の画像変換機能を使えば、VB.NET Windows Forms アプリケーションでPDFビューアを簡単に構築することができます。 PDFページをビットマップとしてレンダリングすることで、開発者は、外部依存なしに、標準のPictureBoxコントロールでPDFドキュメントを表示することができます。 このアプローチでは、完全なドキュメント表示ソリューションとして、ページナビゲーション、ズームコントロール、印刷機能をサポートしています。

無料トライアルを開始してWindows FormsプロジェクトにPDF表示を実装するか、ライセンスを購入して実運用に導入してください。

よくある質問

VB.NETを使ってWindows Forms PictureBoxにPDFを表示するにはどうすればよいですか?

IronPDFのToBitmapメソッドを使うことで、PDFをWindowsフォームのPictureBoxに表示することができます。

IronPDFはVB.NETでPDFページをレンダリングするためにどのような方法を提供していますか?

IronPDFはPDFページを画像としてレンダリングするToBitmapメソッドを提供し、それをVB.NETのPictureBoxコントロールに表示することができます。

PDFページをPictureBoxでナビゲートすることは可能ですか?

はい、IronPdfのページナビゲーション機能を使ってPDFページをナビゲートすることができます。

WindowsフォームでPDFを表示するためにIronPDFを使う利点は何ですか?

IronPDFはPDFページを画像に変換することでWindowsフォームでのPDF表示プロセスを簡素化し、PictureBoxのようなコントロールに簡単に統合することができます。また、ページナビゲーションのような機能もサポートしています。

IronPdfはPictureBoxで表示するために複数ページのPDFを扱うことができますか?

はい、IronPdfは複数ページのPDFを扱うことができます。IronPDFのメソッドを使って、特定のページを画像として選択し、PictureBoxに表示することができます。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。