
IronPrintを使用してAdobeなしでVB .NETでPDFを印刷する方法
.NETでPDFドキュメントを印刷するには、Adobe Readerやその他のサードパーティ製ソフトウェアをインストールすることなく、レンダリング、プリンターとの通信、設定管理を処理するライブラリが必要です。 IronPrintは、Windows、macOS、Linux、およびモバイルプラットフォームで動作するクリーンなAPIによってこの問題を解決します。 このガイドでは、パッケージのインストールから一般的な印刷エラーの対処方法まで、すべての手順を詳しく説明しているので、VB .NETアプリケーションにPDF印刷機能を迅速かつ確実に追加できます。
このチュートリアルを終える頃には、サイレント印刷の方法、Windowsの印刷ダイアログの表示方法、DPIや用紙の向きなどのカスタム設定の適用方法、利用可能なプリンターの列挙方法、そして例外処理を適切に行う方法がわかるようになります。
VB .NETプロジェクトにIronPrintをインストールするにはどうすればよいですか?
IronPrintのインストールは、 NuGetパッケージマネージャーを使えば数秒で完了します。 Visual Studioのパッケージマネージャーコンソールを開いて、実行してください:
インストール後、印刷が必要なファイルの先頭に名前空間のインポートを追加し、 IronPrintのメソッドを呼び出す前にライセンスキーを適用してください。
Imports IronPrint
' Apply your license key (get a free trial key at ironsoftware.com)
License.LicenseKey = "YOUR-LICENSE-KEY"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 ModuleImports 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 ModulePrinter.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 ModuleImports IronPrint
Module DialogPrinting
Sub Main()
' Display the standard Windows print dialog
Printer.ShowPrintDialog("report.pdf")
End Sub
End Moduleこのメソッドが実行されると、Windows は標準の印刷ダイアログを表示します。 ユーザーは、インストールされている任意のプリンターを選択し、ページ範囲を指定し、コピー部数を選択し、両面印刷の設定を調整できます。 ユーザーが"印刷"または"キャンセル"をクリックすると、制御はあなたのコードに戻ります。
この方法は、Windows Formsアプリケーションに自然に統合できます。 ボタンのクリックハンドラから呼び出すことができ、そのダイアログはユーザーが既に使い慣れている他のWindowsアプリケーションと一貫した動作をすることを信頼できます。

印刷ダイアログの使用例ページには、ダイアログを開く前にプリンターを事前に選択したり、印刷部数を事前に入力したりするなど、その他の使用例が示されています。
.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 ModuleImports 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 ModuleImports 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 ModulePrinter.GetPrinterNames()はWindows印刷サブシステムをクエリし、現在のユーザーがアクセス可能なすべてのプリンターを返します。これにはローカルUSBプリンター、ネットワークプリンター、Microsoft Print to PDFのような仮想プリンター、サードパーティのソフトウェアを通じてインストールされたプリンタードライバーが含まれます。
文書を適切なプリンターにルーティングする
複数のプリンターを使用する環境では、大きな文書は高速な部門用プリンターに、小さな文書は近くのデスクトッププリンターに印刷するように設定したい場合があります。このような処理は、文書のページ数やファイルサイズを確認し、リストから適切なプリンター名を選択することで実現できます。

プリンター情報機能に関するドキュメントを読んで、プリンターの状態や既定の用紙トレイなど、照会できるその他のプロパティについて確認してください。
.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 ModuleImports 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よくあるエラーとその修正方法
以下の表は、最も頻繁に発生する印刷エラーとその解決策を示しています。
| エラー | 原因 | ソリューション |
|---|---|---|
| プリンターが見つかりません | プリンター名がWindowsレジストリエントリと一致しません | Printer.GetPrinterNames()を呼び出し、返された名前をそのまま使用してください。 |
| 印刷された白紙ページ | ファイルパスが無効、またはPDFファイルが破損しています。 | File.Existsを使用してパスを検証し、PDF をビューアで開いて整合性を確認してください。 |
| 印刷品質が悪い | DPI設定が低すぎる | PrintSettings.Dpi 300以上に設定してください。 |
| アクセスが拒否されました | 印刷権限が不足しています | 対象プリンターで印刷権限を持つユーザーアカウントでアプリケーションを実行してください。 |
| プリンターがオフラインです | ネットワークまたはデバイスの接続の問題 | Windowsの"デバイスとプリンター"でプリンターの状態を確認し、再接続後に再度お試しください。 |

追加のトラブルシューティングガイダンスについては、IronPrintエンジニアリング要求とトラブルシューティングガイドを参照するか、Iron Softwareの技術サポートにご連絡ください。
.NETでPDF生成と印刷を組み合わせるにはどうすればよいですか?
一般的なワークフローでは、実行時にPDFを生成し、それをすぐに印刷します。たとえば、データベースのレコードから請求書を作成し、それをプリンターに送信する作業を1ステップで行います。IronPDFはPDFの作成を処理し、 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入門ガイド- セットアップ手順の詳細 -ダイアログの例を含む印刷-- ダイアログのカスタマイズパターン -高度な印刷設定機能-- 設定の完全なリファレンス -プリンタ情報機能-- プリンタのプロパティの照会
- IronPrint API リファレンス-- クラスとメソッドの完全なドキュメント IronPrintのトラブルシューティングガイド- よくある問題の解決

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


