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

C#でファイルをプリンターに印刷する方法

C# アプリケーションから PDF ファイルを直接印刷することは、特に物理的な PDF ドキュメントとのシームレスな統合を必要とするアプリケーションを開発する場合に、貴重な機能となります。 PDF ドキュメント管理システム、POS アプリケーション、または印刷を扱うその他のソフトウェアで作業している場合でも、C# は、この PDF 印刷メソッド機能を容易にする強力なライブラリ セットを提供します。

この目的のために、Microsoft C# では、PDF ファイルを既定のプリンターに印刷するための印刷メソッドを提供しています。 この記事では、C# を使用して PDF ファイルをプリンターに印刷する手順について説明します。

C# でファイルをプリンターに印刷する方法

  1. C# Windowsフォームアプリケーションを作成する
  2. キーワードを使用してSystem.Drawing.Printingをインポートする
  3. ボタンやその他の必要なコントロールを使用してフォームを設計する
  4. PrintPageイベントを使用してPrintDocumentイベントを処理する 5.印刷ジョブを開始する
  5. アプリケーションを実行し、"印刷"ボタンをクリックして印刷します。

前提条件

始める前に、次の前提条件を確認してください:

  1. C# 開発環境 (例: Visual Studio)。
  2. プリンターを操作するための適切な権限。
  3. C# プログラミングの基本的な理解。

ステップ1: プロジェクトの設定

新しい C# プロジェクトを作成するか、希望する開発環境で既存のプロジェクトを開きます。 プロジェクトが正しく構成されており、プリンターの操作に必要な権限があることを確認します。 このプロセスを完了するには、次の手順に従ってください。

Visual Studioをインストールする

Visual Studio がインストールされていない場合は、公式 Web サイト ( Visual Studio)からダウンロードしてインストールしてください。

新しいプロジェクトの作成

  1. Visual Studioを開きます。
  2. "新しいプロジェクトの作成"をクリックします。

! C#でファイルをプリンターに印刷する方法: 図1 - 新しいプロジェクト

プロジェクトテンプレートを選択

  1. "新しいプロジェクトの作成"ダイアログで、好みに応じて"Windows フォーム アプリ (.NET Framework)"または"Windows フォーム アプリ (.NET Core)"を選択します。

C#でファイルをプリンターに印刷する方法: 図2 - Windowsフォームアプリ

  1. プロジェクトの名前と場所を指定します。

C#でファイルをプリンターに印刷する方法: 図3 - プロジェクト構成

  1. [次へ] をクリックし、追加情報画面で .NET Framework を選択し、[作成] をクリックします。

フォームをデザインする

  1. プロジェクトが作成されると、デザイナーにメインフォームが表示されます。
  2. ツールボックスを使用して、必要に応じてボタン、テキスト ボックス、ラベルなどのコントロールをフォームに追加します。
  3. プロパティ ウィンドウを使用して各コントロールのプロパティをカスタマイズします。

C#でファイルをプリンターに印刷する方法: 図4 - フォームデザイン

  1. フォームの外観とレイアウトを調整します。

C#でファイルをプリンターに印刷する方法: 図5 - 印刷フォーム

ステップ2: 必要なライブラリをインポートする

C# コード ファイルで、印刷に関連するクラスとメソッドにアクセスするために必要な名前空間をインポートします。

using System.Drawing.Printing;
using System.Drawing.Printing;
Imports System.Drawing.Printing
$vbLabelText   $csharpLabel

これらの名前空間は、印刷操作を処理するためのPrintDocumentPrintPageEventArgsPrintControllerなどの重要なクラスを提供します。

ステップ3: PrintDocumentイベントの処理

PrintDocumentクラスは、C# での印刷の基礎となります。 PrintPageイベントを処理して、印刷するコンテンツとそのフォーマット方法を定義します。 テキスト ファイルの内容を印刷する簡単な例から始めましょう。

private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
    // Specify the file path
    string filePath = "C:\\path\\to\\your\\file.txt";
    // Read the content of the file
    string line = System.IO.File.ReadAllText(filePath);
    // Create a Font object (adjust as needed)
    Font font = new Font("Arial", 12);
    // Create a RectangleF to define the printing area
    RectangleF area = new RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height);
    // Draw the content to the printing area
    e.Graphics.DrawString(line, font, Brushes.Black, area);
    // Set HasMorePages to false to indicate that there are no more pages to print
    e.HasMorePages = false;
}
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
    // Specify the file path
    string filePath = "C:\\path\\to\\your\\file.txt";
    // Read the content of the file
    string line = System.IO.File.ReadAllText(filePath);
    // Create a Font object (adjust as needed)
    Font font = new Font("Arial", 12);
    // Create a RectangleF to define the printing area
    RectangleF area = new RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height);
    // Draw the content to the printing area
    e.Graphics.DrawString(line, font, Brushes.Black, area);
    // Set HasMorePages to false to indicate that there are no more pages to print
    e.HasMorePages = false;
}
Private Sub printDocument1_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs)
	' Specify the file path
	Dim filePath As String = "C:\path\to\your\file.txt"
	' Read the content of the file
	Dim line As String = System.IO.File.ReadAllText(filePath)
	' Create a Font object (adjust as needed)
	Dim font As New Font("Arial", 12)
	' Create a RectangleF to define the printing area
	Dim area As New RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height)
	' Draw the content to the printing area
	e.Graphics.DrawString(line, font, Brushes.Black, area)
	' Set HasMorePages to false to indicate that there are no more pages to print
	e.HasMorePages = False
End Sub
$vbLabelText   $csharpLabel

この例では、テキスト ファイルの内容を読み取り、指定されたフォントと書式を使用して印刷します。

ステップ4: 印刷ジョブを開始する

PrintDocumentクラスのインスタンスを作成し、 PrintPageイベント ハンドラーをアタッチして、印刷プロセスをトリガーすることで、印刷ジョブを開始します。 オプションで、ユーザー設定用の印刷ダイアログを表示できます。

private void btnPrint_Click(object sender, EventArgs e)
{
    PrintDocument pd = new PrintDocument();
    pd.PrintPage += new PrintPageEventHandler(printDocument1_PrintPage);
    // Optionally, display a print dialog for user configuration
    PrintDialog printDialog = new PrintDialog();
    if (printDialog.ShowDialog() == DialogResult.OK)
    {
        pd.PrinterSettings = printDialog.PrinterSettings;
        pd.Print();
    }
}
private void btnPrint_Click(object sender, EventArgs e)
{
    PrintDocument pd = new PrintDocument();
    pd.PrintPage += new PrintPageEventHandler(printDocument1_PrintPage);
    // Optionally, display a print dialog for user configuration
    PrintDialog printDialog = new PrintDialog();
    if (printDialog.ShowDialog() == DialogResult.OK)
    {
        pd.PrinterSettings = printDialog.PrinterSettings;
        pd.Print();
    }
}
Private Sub btnPrint_Click(ByVal sender As Object, ByVal e As EventArgs)
	Dim pd As New PrintDocument()
	AddHandler pd.PrintPage, AddressOf printDocument1_PrintPage
	' Optionally, display a print dialog for user configuration
	Dim printDialog As New PrintDialog()
	If printDialog.ShowDialog() = DialogResult.OK Then
		pd.PrinterSettings = printDialog.PrinterSettings
		pd.Print()
	End If
End Sub
$vbLabelText   $csharpLabel

このコードは、 PrintDocumentインスタンスを作成し、 PrintPageイベント ハンドラーをアタッチして、ドキュメントを印刷します。 オプションの印刷ダイアログを使用すると、ユーザーは印刷ジョブを開始する前に印刷設定を構成できます。 これにより、テキスト ドキュメントがローカルに接続されたプリンタに印刷されます。 存在しない場合は、以下に示すように、印刷ダイアログの既定のプリンター名 (Microsoft Print to PDF) にファイルが印刷されます。

! C# でファイルをプリンターに印刷する方法: 図 6 - Microsoft 印刷ダイアログ

IronPrint ライブラリを使用した C# での高度な印刷

C# コンソール アプリケーションで印刷機能を効率的かつ効果的に処理する場合、IronPrint ライブラリは強力なソリューションを提供します。

IronPrintの紹介

IronPrint は、Iron Software によって開発された包括的な印刷ライブラリであり、.NET アプリケーションとシームレスに統合するように設計されています。 デスクトップ、Web、モバイル プロジェクトのいずれで作業する場合でも、IronPrint はさまざまなファイル形式をサポートし、カスタマイズ可能な印刷設定を提供する、多用途の PDF ドキュメント印刷機能を提供します。

C# でファイルをプリンターに印刷する方法: 図 7 - IronPrint

主要機能

1.フォーマットサポート:IronPrintは、PDF、PNG、TIFF、GIF、JPEG、BITMAPなど、様々なドキュメントフォーマットをサポートしています。この汎用性により、開発者は様々な種類のコンテンツを印刷に活用できます。 2.カスタマイズ可能な設定:開発者はアプリケーションの要件に応じて印刷設定をカスタマイズできます。 これには、DPI (1 インチあたりのドット数) を設定するオプション、用紙の向き (縦または横) を指定するオプション、コピー枚数を制御するオプションが含まれます。 3.印刷ダイアログ:IronPrint は、開発者が印刷前に印刷ダイアログを表示できるようにすることで、シームレスなユーザー エクスペリエンスを実現します。 これは、ユーザーが印刷プロセスを操作して特定のオプションを選択する必要があるシナリオで役立ちます。 4.サイレント印刷: IronPrint は、自動化とワークフローの効率化に特に役立つサイレント印刷機能を提供します。 これにより、開発者はユーザーの介入なしに請求書を印刷できるようになり、手動による介入の必要性がなくなり、プロセス全体が合理化されます。 5.クロスプラットフォームの互換性:IronPrint はプラットフォームの制限を超え、Windows (7 以上)、macOS (10 以上)、iOS (11 以上)、Android API 21 以上 (v5 "Lollipop") など、さまざまな環境との互換性を提供します。 モバイル (Xamarin、MAUI、Avalonia)、デスクトップ (WPF、MAUI、Windows Avalonia)、コンソール (アプリとライブラリ) などのさまざまなプロジェクト タイプとシームレスに統合されます。 6.幅広い .NET バージョンのサポート: 最新の .NET 8、7、6、または Core 3.1+ を使用している場合でも、IronPrint が対応します。 また、.NET Framework (4.6.2+) もサポートしており、さまざまな開発環境間での互換性が確保されています。

IronPrintのインストール

ファイルの印刷を始める前に、IronPrint ライブラリをインストールする必要があります。 NuGet パッケージ マネージャー コンソールを使用すると、これを簡単に実行できます。

Install-Package IronPrint

このコマンド ラインは、IronPrint ライブラリをダウンロードして C# プロジェクトにインストールします。

IronPrint を初期化しています

IronPrint をインストールしたら、C# コードで初期化する必要があります。 IronPrint 名前空間をインポートし、ライセンス キーを設定して適切な機能を確保します。

using IronPrint;
class Program
{
    public static void Main()
    {
        License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
    }
}
using IronPrint;
class Program
{
    public static void Main()
    {
        License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
    }
}
Imports IronPrint
Friend Class Program
	Public Shared Sub Main()
		License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY"
	End Sub
End Class
$vbLabelText   $csharpLabel

IronPrintでファイルを印刷する

IronPrint を使用してファイルを印刷するのは簡単です。 Printerクラスを使用し、 Printメソッドへのファイル パスを指定して PDF をサイレントに印刷できます。

using IronPrint;
class Program
{
    public static void Main()
    {
        License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
        // Specify the file path
        var document = "C:\\path\\to\\your\\file.pdf";
        // Print PDFs
        Printer.Print(document);
    }
}
using IronPrint;
class Program
{
    public static void Main()
    {
        License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
        // Specify the file path
        var document = "C:\\path\\to\\your\\file.pdf";
        // Print PDFs
        Printer.Print(document);
    }
}
Imports IronPrint
Friend Class Program
	Public Shared Sub Main()
		License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY"
		' Specify the file path
		Dim document = "C:\path\to\your\file.pdf"
		' Print PDFs
		Printer.Print(document)
	End Sub
End Class
$vbLabelText   $csharpLabel

サイレント印刷には、PDF を印刷するためにユーザーの操作を必要としないという利点があり、ワークフローを合理化するために自動化が必要な状況に役立ちます。 印刷前のダイアログ ボックスなど、ユーザーの操作が必要な状況では、 ShowPrintDialogを使用できます。これにより、追加の手順としてダイアログが表示され、同じ結果が得られます。

この例では PDF ファイルの印刷のみを示していますが、IronPrint は PDF、PNG、TIFF、GIF、JPEG、IMAGE、BITMAP など、さまざまなファイル形式もサポートしています。

印刷設定のカスタマイズ

IronPrint を使用すると、アプリケーションの要件に応じて印刷設定をカスタマイズできます。 PrintSettingsクラスを使用して、DPI、コピー数、用紙の向きなどの設定を構成できます。 次のコード例は、ページ設定を指定して PDF ドキュメントを印刷するのに役立ちます。

using IronPrint;
class Program
{
    public static void Main()
    {
        IronPrint.License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
        Console.WriteLine("Printing Started...");
        // Specify the file path
        string filePath = "C:\\path\\to\\your\\file.pdf";
        // Configure print settings
        PrintSettings printSettings = new PrintSettings();
        printSettings.Dpi = 300;
        printSettings.NumberOfCopies = 2;
        printSettings.PaperOrientation = PaperOrientation.Landscape;
        // Print the document with custom settings
        Printer.Print(filePath, printSettings);
        // Print using the Print dialog
        Printer.ShowPrintDialog(filePath, printSettings);
    }
}
using IronPrint;
class Program
{
    public static void Main()
    {
        IronPrint.License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
        Console.WriteLine("Printing Started...");
        // Specify the file path
        string filePath = "C:\\path\\to\\your\\file.pdf";
        // Configure print settings
        PrintSettings printSettings = new PrintSettings();
        printSettings.Dpi = 300;
        printSettings.NumberOfCopies = 2;
        printSettings.PaperOrientation = PaperOrientation.Landscape;
        // Print the document with custom settings
        Printer.Print(filePath, printSettings);
        // Print using the Print dialog
        Printer.ShowPrintDialog(filePath, printSettings);
    }
}
Imports IronPrint
Friend Class Program
	Public Shared Sub Main()
		IronPrint.License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY"
		Console.WriteLine("Printing Started...")
		' Specify the file path
		Dim filePath As String = "C:\path\to\your\file.pdf"
		' Configure print settings
		Dim printSettings As New PrintSettings()
		printSettings.Dpi = 300
		printSettings.NumberOfCopies = 2
		printSettings.PaperOrientation = PaperOrientation.Landscape
		' Print the document with custom settings
		Printer.Print(filePath, printSettings)
		' Print using the Print dialog
		Printer.ShowPrintDialog(filePath, printSettings)
	End Sub
End Class
$vbLabelText   $csharpLabel

出力は次のようになります。

C#でファイルをプリンターに印刷する方法: 図8 - カスタマイズされた印刷出力

物理プリンターがインストールされていない場合は、デフォルトのプリンターを使用して PDF ドキュメントを印刷します。 使用可能なすべてのプリンターを取得するには、 GetPrinterNamesメソッドを使用することもできます。

// Retrieve printers' name
List<string> printersName = Printer.GetPrinterNames();
foreach (string printer in printersName)
{
    Console.WriteLine(printer);
}
// Retrieve printers' name
List<string> printersName = Printer.GetPrinterNames();
foreach (string printer in printersName)
{
    Console.WriteLine(printer);
}
' Retrieve printers' name
Dim printersName As List(Of String) = Printer.GetPrinterNames()
For Each printer As String In printersName
	Console.WriteLine(printer)
Next printer
$vbLabelText   $csharpLabel

詳しい情報については、ドキュメント ページをご覧ください。

結論

C# でファイルを印刷することは、 System.Drawing.Printing名前空間によって提供される機能を使用することで管理可能なタスクになります。 PrintPageイベントを処理し、 PrintDocumentクラスを利用することで、印刷プロセスを特定の要件に合わせてカスタマイズできます。 この包括的なガイドでは、C# アプリケーションからファイルを印刷するための基本的な手順について説明し、この機能をプロジェクトに統合するための強固な基盤を提供します。

高度な機能、スケーラビリティ、自動化を求める開発者にとって、IronPrint は理想的なソリューションとして際立っています。 直感的な API と追加機能は、Microsoft が提供する基本パッケージを上回っています。 IronPrint を詳しく調べていくと、さまざまなファイル形式のサポート、画像を組み込む機能、アプリケーションの特定のニーズに合わせてフォーマットを強化する機能など、さまざまなカスタマイズ オプションがあることがわかりました。

IronPrint を C# アプリケーションに統合すると、ファイルをプリンターに印刷するプロセスが簡素化されます。 さまざまなファイル形式とカスタマイズ可能な印刷設定をサポートする IronPrint は、印刷機能を強化したい開発者に強力なソリューションを提供します。 デスクトップ、Web、モバイル プロジェクトのいずれに作業する場合でも、IronPrint は印刷プロセスを効率化するため、.NET ツールキットへの貴重な追加機能となります。 無料トライアルページをご覧になり、IronPrint のメリットをご確認ください。 ここからライブラリをダウンロードして、その機能を直接体験してください。

詳細については、IronPrint の無料トライアルページをご覧ください。 ここからライブラリをダウンロードして試してください。

よくある質問

C#でPDFファイルをプリンターに印刷するにはどうすればいいですか?

C#を使用してWindows Forms アプリケーションを作成し、System.Drawing.Printing名前空間をインポートし、PrintDocumentイベントを処理することで、PDFファイルをプリンターに印刷できます。さまざまなファイル形式のサポートやカスタマイズ可能な印刷設定などの高度な機能については、Iron SoftwareのIronPrintライブラリを使用できます。

印刷のためのC#プロジェクトのセットアップにはどのような手順が必要ですか?

C#プロジェクトを印刷のために設定するには、まずVisual Studioで新しいWindows Forms アプリケーションを作成し、フォームインターフェイスをデザインし、System.Drawing.Printing名前空間をインポートします。IronPrintは、複数の形式と設定を処理するための拡張印刷機能として統合できます。

IronPrintは印刷のために異なるファイル形式に対応できますか?

はい、IronPrintはPDF、PNG、HTML、TIFF、GIF、JPEG、IMAGE、BITMAPを含む幅広いファイル形式をサポートしており、さまざまなタイプのコンテンツを印刷する必要がある開発者にとって多機能な選択肢です。

IronPrintがC# アプリケーションでの印刷にとって堅牢な解決策である理由は何ですか?

IronPrintは、複数の形式のサポート、DPIや用紙の向きなどのカスタマイズ可能な設定、クロスプラットフォーム互換性を備えた堅牢なソリューションを提供します。.NETアプリケーションへの容易な統合も可能であり、印刷能力を強化します。

IronPrintを使用して印刷設定をカスタマイズするには、どうすればよいですか?

IronPrintはPrintSettingsクラスを使用して印刷設定をカスタマイズできます。DPI、コピー数、用紙の向きなどの設定を調整して、特定の印刷要件に合わせることができます。

IronPrintはクロスプラットフォームに対応していますか?

はい、IronPrintはクロスプラットフォームに対応しており、Windows、macOS、iOS、Androidなどの環境をサポートしており、さまざまなオペレーティングシステムで異なるアプリケーションにライブラリを使用することができます。

C# アプリケーションにおいて、IronPrintがどのように印刷機能を強化できますか?

IronPrintは、複数のドキュメント形式のサポート、カスタマイズ可能な印刷設定、.NETアプリケーションへのシームレスな統合を提供することで、C#アプリケーションの印刷機能を強化します。これにより、全体的な印刷プロセスが改善されます。

C#でIronPrintを使用して印刷ジョブを開始する方法は?

C#でIronPrintを使用して印刷ジョブを開始するには、まずPrintDocumentクラスのインスタンスを作成し、PrintPageイベントハンドラーをアタッチし、必要なカスタマイズとともにIronPrintのメソッドを使用して印刷ジョブを実行します。

C#でファイルの印刷を開始するには何が必要ですか?

C#でファイルの印刷を開始するには、Visual Studioなどの開発環境、プリンターにアクセスするための権限、C#プログラミングの基本的な理解が必要です。プロジェクトにIronPrintを追加することで印刷能力を強化できます。

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

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

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