フッターコンテンツにスキップ
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. Print ジョブを開始します
  6. アプリケーションを実行し、印刷ボタンをクリックして印刷します

前提条件

開始する前に、次の前提条件が揃っていることを確認してください:

  1. C# 開発環境 (例: Visual Studio)。
  2. プリンターと対話するための十分な権限。
  3. 基本的な C# プログラミングの理解。

ステップ 1: プロジェクトのセットアップ

新しい C# プロジェクトを作成するか、好みの開発環境で既存のプロジェクトを開いてください。 プロジェクトが正しく構成されていること、およびプリンターとの対話に必要な権限があることを確認してください。 次のプロセスにより、このプロセスを完了できます:

Visual Studio のインストール

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

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

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

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

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

  1. "新しいプロジェクトの作成" ダイアログで、"Windows Forms App (.NET Framework)" または "Windows Forms App (.NET Core)" を選択します。

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

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

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

  1. 次へをクリックし、追加情報画面から .NET フレームワークを選択し、「作成」をクリックします。

フォームのデザイン

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

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

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

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

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

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

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

これらの名前空間は、印刷操作を処理するための PrintDocumentPrintPageEventArgs、および PrintController などの基本的なクラスを提供します。

ステップ 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 Print ダイアログ

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(ドットパーインチ)を設定したり、用紙の向き(縦または横)を指定したり、コピー数を制御するオプションが含まれます。
  3. 印刷ダイアログ:IronPrint は印刷前に印刷ダイアログを表示できるようにすることで、シームレスなユーザーエクスペリエンスを提供します。 これにより、ユーザーが印刷プロセスと対話し、特定のオプションを選択する必要のあるシナリオで役立ちます。
  4. 静かに印刷: IronPrint は、特に自動化やワークフローの効率化に役立つ静かな印刷機能を提供します。 これにより、請求書をユーザーの操作なしで印刷できるため、手動の介入の必要がなくなり、全体的なプロセスが合理化されます。
  5. クロスプラットフォーム互換性:IronPrint は、さまざまな環境と互換性を提供し、プラットフォームの制限を超えて、Windows (7+)、macOS (10+)、iOS (11+)、Android API 21+ (v5 "Lollipop") を含むさまざまな環境と互換性があります。 Mobile (Xamarin, MAUI & Avalonia)、Desktop (WPF, MAUI & Windows Avalonia)、および Console (App & Library) などのさまざまなプロジェクトタイプとシームレスに統合されます。
  6. 幅広い .NET バージョンサポート:最新の .NET 8、7、6、または Core 3.1+ を使用している場合でも、IronPrint が対応します。 また、.NET Framework (4.6.2+) もサポートしており、さまざまな開発環境に対応しています。

IronPrint のインストール

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

Install-Package IronPrint

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

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、イメージ、および 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 を掘り下げると、さまざまなファイル形式のサポート、画像の組み込みが可能になる機能、およびアプリケーションの特定のニーズによりよく一致するようにフォーマットを強化する機能など、一連のカスタマイズオプションを発見しました。

C# アプリケーションへの IronPrint の統合により、ファイルをプリンターに印刷するプロセスが簡素化されます。 さまざまなファイル形式のサポートとカスタマイズ可能な印刷設定を備えた 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
テクニカルライター

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

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