IRONSOFTWAREHOME
IRONPRINTの使用

IronPrintを使用してAdobeなしでVB .NETでPDFを印刷する方法

Curtis Chau
Curtis Chau
Updated: 2026年6月28日

.NETでPDFドキュメントを印刷するには、Adobe Readerやその他のサードパーティ製ソフトウェアをインストールすることなく、レンダリング、プリンターとの通信、設定管理を処理するライブラリが必要です。 IronPrintは、Windows、macOS、Linux、およびモバイルプラットフォームで動作するクリーンなAPIによってこの問題を解決します。 このガイドでは、パッケージのインストールから一般的な印刷エラーの対処方法まで、すべての手順を詳しく説明しているので、VB .NETアプリケーションにPDF印刷機能を迅速かつ確実に追加できます。

このチュートリアルを終える頃には、サイレント印刷の方法、Windowsの印刷ダイアログの表示方法、DPIや用紙の向きなどのカスタム設定の適用方法、利用可能なプリンターの列挙方法、そして例外処理を適切に行う方法がわかるようになります。

VB .NETプロジェクトにIronPrintをインストールするにはどうすればよいですか?

IronPrintのインストールは、 NuGetパッケージマネージャーを使えば数秒で完了します。 Visual Studioのパッケージマネージャーコンソールを開いて、実行してください:

PM > Install-Package IronPrint

インストール後、印刷が必要なファイルの先頭に名前空間のインポートを追加し、 IronPrintのメソッドを呼び出す前にライセンスキーを適用してください。

Imports IronPrint

' Apply your license key (get a free trial key at ironsoftware.com)
License.LicenseKey = "YOUR-LICENSE-KEY"

IronPrintは、 .NET Framework 4.6.2以降、および.NET 6、7、8、9、10を対象としています。各プラットフォーム向けにネイティブのレンダリングエンジンが同梱されているため、Adobe Acrobat、Ghostscript、またはその他のPDFレンダラーをインストールする必要はありません。 同じNuGetパッケージは、Windows Forms、WPF、コンソール アプリケーション、および VB .NETで記述されたASP.NETプロジェクトで動作します。

サポートされているドキュメント形式は、PDF、PNG、HTML、TIFF、GIF、JPEG、およびBMPです。IronPrint統合印刷APIIronPrintで、すべての機能を確認できます。

ライセンスおよびアクティベーションに関する詳細については、 IronPrintライセンスキーのドキュメントをご覧ください。

.NETでPDFをサイレント印刷するにはどうすればよいですか?

サイレント印刷では、ダイアログボックスを表示せずに文書を直接プリンターに送信します。 このモードは、自動化されたワークフロー、一括請求書処理、レポート生成パイプライン、およびユーザーが存在しないサーバー側でのドキュメント印刷に不可欠です。

Microsoftの .NETでのGDI+印刷に関するドキュメント によると、従来 for .NET印刷ではPrintPageイベントにフックし、ページレイアウトを手動で処理します。 IronPrintは、そういった定型文をすべて排除します。

Imports IronPrint

Module SilentPrinting
    Sub Main()
        Dim pdfPath As String = "invoice.pdf"

        ' Print to the system default printer
        Printer.Print(pdfPath)

        ' Print to a specific printer by name
        Dim settings As New PrintSettings()
        settings.PrinterName = "Microsoft Print to PDF"
        Printer.Print(pdfPath, settings)
    End Sub
End Module

Printer.PrintメソッドはPDFのレンダリングを全て内部で処理します。 PrintSettings引数なしで呼び出すと、IronPrintはシステムのデフォルトプリンターを自動的に選択します。 PrinterName値を提供すると、その特定のデバイスにジョブをルーティングします。

バッチシナリオの場合、ファイルパスのリストをループしてそれぞれにPrinter.Printを呼び出すことができます。 IronPrintはサイレント印刷のためにUIスレッドを開かないため、コンソールアプリケーション、Windowsサービス、およびASP.NETリクエストハンドラーで正しく動作します。

利用可能なオプションの詳細については、 IronPrintの印刷設定に関するドキュメントを参照してください。

印刷前に印刷ダイアログを表示するにはどうすればよいですか?

印刷ジョブを実行する前に、ユーザーにプリンターを選択させたり、ページ範囲を調整させたり、印刷部数を設定させたりする必要がある場合があります。 IronPrintはまさにこのシナリオのためにPrinter.ShowPrintDialogを提供します。

Imports IronPrint

Module DialogPrinting
    Sub Main()
        ' Display the standard Windows print dialog
        Printer.ShowPrintDialog("report.pdf")
    End Sub
End Module

このメソッドが実行されると、Windows は標準の印刷ダイアログを表示します。 ユーザーは、インストールされている任意のプリンターを選択し、ページ範囲を指定し、コピー部数を選択し、両面印刷の設定を調整できます。 ユーザーが"印刷"または"キャンセル"をクリックすると、制御はあなたのコードに戻ります。

この方法は、Windows Formsアプリケーションに自然に統合できます。 ボタンのクリックハンドラから呼び出すことができ、そのダイアログはユーザーが既に使い慣れている他のWindowsアプリケーションと一貫した動作をすることを信頼できます。

VB .NET Print PDF Without Opening Adobe with IronPrint: Image 1 - Print dialog

印刷ダイアログの使用例ページには、ダイアログを開く前にプリンターを事前に選択したり、印刷部数を事前に入力したりするなど、その他の使用例が示されています。

.NETでPDF印刷設定をカスタマイズするにはどうすればよいですか?

PrintSettingsクラスは印刷ジョブのあらゆる面をプログラムで完全に制御できます。 印刷ジョブが印刷キューに到達する前に、DPI、用紙サイズ、向き、部数、印刷先プリンターなどを設定できます。

Imports IronPrint

Module CustomPrintSettings
    Sub Main()
        Dim settings As New PrintSettings() With {
            .Dpi = 300,
            .NumberOfCopies = 2,
            .PaperOrientation = PaperOrientation.Landscape,
            .PaperSize = PaperSize.A4,
            .PrinterName = "Office Printer"
        }

        Printer.Print("document.pdf", settings)
    End Sub
End Module

主要な印刷設定プロパティを理解する

Dpiプロパティは出力解像度を制御します。 300という値は、Professional文書における標準的な値です。 600は、高品質のグラフィックやエンジニアリング図面に適しています。 150などの低い値は、品質よりも速度が重要な下書き印刷に役立ちます。

NumberOfCopiesはプリンターに単一ジョブで作成するコピー数を指示します。 この値を3に設定することは、ユーザーがCtrl+Pを押してコピー数フィールドに3を入力するのと同等ですが、UI操作なしでコードから制御できます。

PaperOrientation.Landscapeを受け入れます。 横向きで作成されたPDFファイルを誤った向きで表示すると、コンテンツが切り取られたり、縮小されたりする原因となります。 これを明示的に設定することで、出力がドキュメントのデザインと一致することが保証されます。

PaperSize.Legalなどの標準サイズを受け入れます。 これは、印刷環境において異なるサイズの用紙がセットされた用紙トレイが混在している場合に重要です。

正しいプリンター名を選択する

PrinterName文字列は、スペースや大文字小文字を含め、プリンターのWindowsでの登録名と正確に一致させる必要があります。 実行時に有効な名前のリストを取得するには、Printer.GetPrinterNames()(次のセクションで紹介)を使用します。

より高度なカスタマイズオプションについては、高度な印刷カスタマイズ機能のページをご覧ください。

プログラムでプリンタを列挙して選択するにはどうすればよいですか?

Enterprise環境では、ワークステーションは数十台のネットワークプリンタにアクセスできることが多い。 IronPrintを使えば、利用可能なすべてのプリンターを簡単に一覧表示し、実行時に適切なプリンターを選択できます。

Imports IronPrint

Module PrinterManagement
    Sub Main()
        ' Retrieve all available printers
        Dim printers As List(Of String) = Printer.GetPrinterNames()

        Console.WriteLine($"Found {printers.Count} printer(s):")
        For Each printerName As String In printers
            Console.WriteLine($"  - {printerName}")
        Next

        ' Print to the first available printer
        If printers.Count > 0 Then
            Dim settings As New PrintSettings()
            settings.PrinterName = printers(0)
            Printer.Print("document.pdf", settings)
        Else
            Console.WriteLine("No printers found. Check system configuration.")
        End If
    End Sub
End Module

Printer.GetPrinterNames()はWindows印刷サブシステムをクエリし、現在のユーザーがアクセス可能なすべてのプリンターを返します。これにはローカルUSBプリンター、ネットワークプリンター、Microsoft Print to PDFのような仮想プリンター、サードパーティのソフトウェアを通じてインストールされたプリンタードライバーが含まれます。

文書を適切なプリンターにルーティングする

複数のプリンターを使用する環境では、大きな文書は高速な部門用プリンターに、小さな文書は近くのデスクトッププリンターに印刷するように設定したい場合があります。このような処理は、文書のページ数やファイルサイズを確認し、リストから適切なプリンター名を選択することで実現できます。

VB .NET Print PDF Without Opening Adobe with IronPrint: Image 2 - Printer selection

プリンター情報機能に関するドキュメントを読んで、プリンターの状態や既定の用紙トレイなど、照会できるその他のプロパティについて確認してください。

.NETで印刷エラーを処理するにはどうすればいいですか?

印刷処理コードは、エラーを適切に処理できなければならない。 ファイルパスが間違っているか、プリンターがオフラインになっているか、ユーザーアカウントに印刷権限がない可能性があります。 印刷呼び出しを構造化された例外処理で囲むことで、未処理の例外によってアプリケーションがクラッシュするのを防ぐことができます。

Imports IronPrint
Imports System.IO

Module ErrorHandling
    Sub Main()
        Dim filePath As String = "document.pdf"

        If Not File.Exists(filePath) Then
            Console.WriteLine("PDF file not found. Verify the path and try again.")
            Return
        End If

        Try
            Dim settings As New PrintSettings()
            settings.PrinterName = "Office Printer"
            Printer.Print(filePath, settings)
            Console.WriteLine("Print job sent successfully.")
        Catch ex As Exception
            Console.WriteLine($"Printing failed: {ex.Message}")
        End Try
    End Sub
End Module

よくあるエラーとその修正方法

以下の表は、最も頻繁に発生する印刷エラーとその解決策を示しています。

.NETにおけるPDF印刷の一般的なエラーとその解決策
エラー原因ソリューション
プリンターが見つかりませんプリンター名がWindowsレジストリエントリと一致しませんPrinter.GetPrinterNames()を呼び出し、返された名前をそのまま使用してください。
印刷された白紙ページファイルパスが無効、またはPDFファイルが破損しています。File.Existsを使用してパスを検証し、PDF をビューアで開いて整合性を確認してください。
印刷品質が悪いDPI設定が低すぎるPrintSettings.Dpi 300以上に設定してください。
アクセスが拒否されました印刷権限が不足しています対象プリンターで印刷権限を持つユーザーアカウントでアプリケーションを実行してください。
プリンターがオフラインですネットワークまたはデバイスの接続の問題Windowsの"デバイスとプリンター"でプリンターの状態を確認し、再接続後に再度お試しください。

VB .NET Print PDF Without Opening Adobe with IronPrint: Image 3 - Example error

追加のトラブルシューティングガイダンスについては、IronPrintエンジニアリング要求とトラブルシューティングガイドを参照するか、Iron Softwareの技術サポートにご連絡ください。

.NETでPDF生成と印刷を組み合わせるにはどうすればよいですか?

一般的なワークフローでは、実行時にPDFを生成し、それをすぐに印刷します。たとえば、データベースのレコードから請求書を作成し、それをプリンターに送信する作業を1ステップで行います。IronPDFPDFの作成を処理し、 IronPrintは出力処理を処理します。

IronPDFとIronPrintを組み合わせる理由とは?

IronPDFは、HTML、ASPX、および既存のドキュメントを、適切な形式のPDFファイルに変換します。 IronPrintは、PDFファイルがメモリに読み込まれるかディスクに保存されると、Adobe Readerを必要とせずにプリンターにファイルを送信します。 どちらのライブラリも同じ NuGet ベースのデプロイメント モデルを採用しているため、2 つのパッケージを追加し、生成から印刷までのパイプライン全体を網羅する簡単な VB .NETコードを記述するだけで済みます。

このアプローチは特に以下のような場合に効果的です。

-請求書と領収書の印刷- HTMLテンプレートからPDFを生成し、すぐに印刷します -レポート生成- データベースクエリの結果をフォーマット済みのPDFに変換し、オンデマンドで印刷します。 -ラベルとバーコードの印刷- バーコード生成にIronBarcode 、出力にIronPrintを組み合わせる -文書の一括処理- レコードをループ処理し、レコードごとに1つのPDFを生成し、それぞれを順番に印刷する

VB .NETでHTMLからPDFを生成する方法については、 IronPDF for VB .NETのドキュメントを参照してください。

W3Cの 印刷メディアクエリに関する仕様 によると、HTMLから印刷へのワークフローにおいては、CSS @page ルールを通じて印刷レイアウトを制御するのが標準的なアプローチです。 IronPDFはレンダリング時にこれらのCSSルールを尊重するため、 IronPrintがプリンターに送信する前に、生成されるPDFには正しい余白、改ページ、サイズが設定されます。

複数ページを印刷し、ページ範囲を制御するにはどうすればよいですか?

大きな文書を印刷する場合、特定のページだけを印刷する必要があるかもしれません。例えば、50ページのレポートのうち、1ページ目から5ページ目までを印刷する場合などです。 IronPrintのPrintSettingsクラスはページ範囲の設定をサポートしています。

ページ範囲の設定

PrintSettingsオブジェクト内で開始ページと終了ページを指定できます。 ページ番号は1から始まる番号で、標準的な印刷ダイアログでユーザーが期待する慣例に合致しています。 ページ範囲を指定しない場合、 IronPrintは文書全体を印刷します。

ページ範囲印刷は、特に大量印刷環境において、破損したページ1枚を再印刷する方が文書全体を再印刷するよりも速い場合に非常に役立ちます。 NumberOfCopiesと組み合わせることで、どのページを何部出力トレイに届けるかを正確に制御できます。

ページ範囲を含むPrintSettingsプロパティの完全なリストについては、IronPrintの印刷設定ハウツーガイドをご覧ください。

グレースケール印刷

一部のプリンターは、文書にカラーコンテンツが含まれていない場合でも、デフォルトでカラー出力を行うため、トナーやインクを無駄に消費します。 PrintSettingsを通じてグレースケール出力を強制することができます。 この設定はWindowsとmacOSの両方の環境で利用可能で、PDFだけでなく、サポートされているすべてのドキュメント形式で機能します。

IronPrintの機能概要には、各プラットフォームで使用可能なすべての印刷設定とその例が記載されています。

次のステップは何ですか?

これで、VB .NETアプリケーションでPDF印刷を行うための構成要素が揃いました。

  • サイレント印刷 -- 自動化されたワークフローのためのPrinter.Print(path)
  • ダイアログ印刷 -- ユーザー制御ジョブのためのPrinter.ShowPrintDialog(path)
  • カスタム設定 -- DPI、向き、コピー数、プリンター選択のためのPrintSettings
  • プリンター列挙 -- 動的プリンタールーティングのためのPrinter.GetPrinterNames() -エラー処理-- 事前ファイル検証による構造化例外処理 -ワークフローの組み合わせ-- 生成にはIronPDF 、出力にはIronPrintを使用

これらの機能を活用するには、 IronPrintの無料トライアルを開始し、以下の追加リソースをご覧ください。

IronPrint入門ガイド- セットアップ手順の詳細 -ダイアログの例を含む印刷-- ダイアログのカスタマイズパターン -高度な印刷設定機能-- 設定の完全なリファレンス -プリンタ情報機能-- プリンタのプロパティの照会

Curtis Chau
テクニカルライター

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

...
詳しく読む

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。