C#でプリンター名を指定する方法
IronPrintのPrinterNameプロパティを公開しています。 ターゲットプリンターの正確な名前を文字列として割り当て、設定されたPrintSettingsオブジェクトを任意のIronPrint印刷メソッドに渡すと、そのドキュメントはシステムデフォルトではなくそのプリンターに送信されます。
このガイドは、プリンター名の設定、実行時に使用可能なプリンターの発見、および他の印刷設定とプリンター選択の組み合わせについて説明します。
クイックスタート: プリンター名の指定
最小限のワークフロー(5ステップ)
- IronPrint C#印刷ライブラリをインストール
PrintSettingsオブジェクトを作成PrinterNameをターゲットプリンターの名前に設定します- 設定を
Printer.Printに渡します。 - 指定したプリンターで印刷するためにプロジェクトを実行します
C#でプリンター名を指定するには?
ターゲットプリンターを特定するには、その名前をPrintSettingsオブジェクトとして割り当てます。 その後、そのオブジェクトをPrinter.Printに渡します。
入力
invoice.pdfは、行項目と合計を含むスタイル付きA4 B2Bインボイスで、PrintSettings.PrinterName経由で特定の名前のプリンターに印刷されます。
:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/specify-printer-name-set-printer-name.cs
using IronPrint;
// Configure print settings with a target printer
PrintSettings settings = new PrintSettings();
settings.PrinterName = "Microsoft Print to PDF";
// Print to the specified printer
Printer.Print("invoice.pdf", settings);
Imports IronPrint
' Configure print settings with a target printer
Dim settings As New PrintSettings()
settings.PrinterName = "Microsoft Print to PDF"
' Print to the specified printer
Printer.Print("invoice.pdf", settings)
まずPrinterName = nullで初期化し、OSのデフォルトプリンターを意味します。 その後、ターゲットプリンターの正確な名前でPrinterNameを上書きします。 Printer.Printを呼び出すと、IronPrintがそのプリンターのキューにジョブを直接送信します。
出力
請求書は名前指定されたプリンターに直接送られます。 ジョブはサイレント印刷の例と同様にプリンターキューに表示されます。
"Microsoft Print to PDF"を使用してPrinterNameに請求書出力が印刷されました。
考慮すべき2つの詳細があります。 最初に、プリンター名はオペレーティングシステムが報告する名前と正確に一致しなければなりません; この比較は大文字と小文字を区別します。例えば、"HP LaserJet"のミスマッチは、サイレントに失敗するか、エラーを投げるでしょう。 第二に、ユーザーがPrinterNameを上書きし、最終的なコントロールをユーザー側に与えます。
プリンター名が事前に知られていない場合、値をハードコードする代わりに、ランタイムでインストールされているすべてのプリンターを照会できます。
使用可能なプリンターをどうやって発見しますか?
プリンター名をハードコーディングする代わりに、Printer.GetPrinterNamesを使用してランタイムでシステムをクエリできます。 このメソッドは、マシンにインストールされたすべてのプリンターを含むList<string>を返します。
入力
report.pdfはA4のビジネスレポートで、要約セクションとデータテーブルが含まれ、最初に動的に発見されたプリンターで印刷されます。
:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/specify-printer-name-discover-printers.cs
using IronPrint;
// List every installed printer
List<string> printers = Printer.GetPrinterNames();
// Print each printer name
foreach (string name in printers)
{
Console.WriteLine(name);
}
// Print to the first available printer
if (printers.Count > 0)
{
Printer.Print("report.pdf", new PrintSettings
{
PrinterName = printers[0]
});
}
Imports IronPrint
' List every installed printer
Dim printers As List(Of String) = Printer.GetPrinterNames()
' Print each printer name
For Each name As String In printers
Console.WriteLine(name)
Next
' Print to the first available printer
If printers.Count > 0 Then
Printer.Print("report.pdf", New PrintSettings With {
.PrinterName = printers(0)
})
End If
ローカル、ネットワーク、"Microsoft Print to PDF"などの仮想プリンターを含む、OSが認識するすべてのプリンターを取得するためにGetPrinterNamesを呼び出し、リストを反復してインデックス名マッチング、またはアプリケーションが必要とする任意のカスタムロジックでプリンターを選択します。
出力
レポートは最初に利用可能なプリンターに送信されます。 上記のようにジョブはプリンターキューに表示されます。
GetPrinterNamesを介して最初に使用可能なプリンターにレポート出力が印刷されました。
この発見してから印刷するパターンは、異なるマシンに配備されたアプリケーションにとって必要不可欠です。 シングルマシンシナリオではプリンター名のハードコーディングが機能しますが、プロダクションアプリケーションは利用可能なプリンターをクエリし、ユーザーに選択させるか、命名規則に基づいてプログラムでプリンターを選択する必要があります。
プリンターの選択は、用紙サイズ、DPI、コピー数、余白と組み合わせて1つの設定オブジェクトにすることもできます。
プリンター名を他の設定とどうやって組み合わせますか?
PrinterNameと共に用紙サイズ、方向、DPI、マージン、コピー数などのプロパティを公開しています。 単一のオブジェクトで全てを設定します。
入力
quarterly-report.pdfは、KPIカードとチャートを備えたA4の四半期ごとの財務報告書で、用紙サイズ、DPI、コピー数を1つのPrinterNameで印刷されます。
:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/specify-printer-name-combined-settings.cs
using IronPrint;
// Configure full print settings with a named printer
PrintSettings settings = new PrintSettings
{
PrinterName = "Office Color Printer",
PaperSize = PaperSize.A4,
PaperOrientation = PaperOrientation.Portrait,
Dpi = 300,
NumberOfCopies = 2,
PaperMargins = new Margins(15, 15, 15, 15),
Grayscale = false
};
// Print the quarterly report
Printer.Print("quarterly-report.pdf", settings);
Imports IronPrint
' Configure full print settings with a named printer
Dim settings As New PrintSettings With {
.PrinterName = "Office Color Printer",
.PaperSize = PaperSize.A4,
.PaperOrientation = PaperOrientation.Portrait,
.Dpi = 300,
.NumberOfCopies = 2,
.PaperMargins = New Margins(15, 15, 15, 15),
.Grayscale = False
}
' Print the quarterly report
Printer.Print("quarterly-report.pdf", settings)
読みやすいようにオブジェクト初期化子構文を使用します。 PrinterNameはジョブを"Office Color Printer"にルーティングし、残りのプロパティが出力フォーマットを制御します。 300でのDpiは、鋭いテキストとグラフィックを生成します。 Marginsコンストラクタを使用してミリメートル値を受け入れます。 利用可能なプロパティの全リストは、印刷設定ガイドを参照してください。
出力
四半期レポートは、名前付きプリンター、A4縦向き、300 DPI、2部、15 mmの余白で1つのジョブとして印刷されます。 上記のようにジョブはプリンターキューに表示されます。
四半期レポート出力がPrinterName、A4、300 DPI、2部、15mmの余白と共に印刷されました。
IronPrintは構成を1つのユニットとして検証し、統合設定を単一のジョブとしてプリンタードライバーに送信します。
プリンターの発見または印刷中にメインスレッドをブロックできないアプリケーションは、両操作の非同期相当を使用できます。
プリンターを選んで非同期で印刷するには?
メインスレッドをブロックできないWPFおよびWinFormsアプリの場合、Printer.PrintAsyncを使用します。 どちらもTaskを返し、UIを応答可能に保ちます。
:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/specify-printer-name-async-printer-select.cs
using IronPrint;
using System.Threading.Tasks;
public class PrintService
{
public async Task PrintToFirstAvailableAsync(string filePath)
{
// Discover available printers asynchronously
List<string> printers = await Printer.GetPrinterNamesAsync();
// Exit if no printers are installed
if (printers.Count == 0)
{
Console.WriteLine("No printers found.");
return;
}
// Configure settings for the first available printer
PrintSettings settings = new PrintSettings
{
PrinterName = printers[0],
Dpi = 300
};
// Print asynchronously
await Printer.PrintAsync(filePath, settings);
}
}
Imports IronPrint
Imports System.Threading.Tasks
Public Class PrintService
Public Async Function PrintToFirstAvailableAsync(filePath As String) As Task
' Discover available printers asynchronously
Dim printers As List(Of String) = Await Printer.GetPrinterNamesAsync()
' Exit if no printers are installed
If printers.Count = 0 Then
Console.WriteLine("No printers found.")
Return
End If
' Configure settings for the first available printer
Dim settings As New PrintSettings With {
.PrinterName = printers(0),
.Dpi = 300
}
' Print asynchronously
Await Printer.PrintAsync(filePath, settings)
End Function
End Class
このクラスベースの例は発見と印刷のロジックを再利用可能なサービスにラップしています。PrinterNameに割り当てます。 await Printer.PrintAsync呼び出しは、ジョブを非同期に送信します。
出力
請求書は非同期で最初に発見されたプリンターに印刷されます。 上記のようにジョブはプリンターキューに表示されます。
請求書出力が非同期で最初に利用可能なプリンターに印刷されました。
実稼働環境では、printers[0]を名称規則に一致するロジックに置き換えることができます。例えば、"Label"を含むプリンターを出荷ラベル用に検索するか、"Color"を含むプリンターをブランドドキュメント用に検索する。 IronPrintの非同期メソッドは全て同じPrinterNameの動作は同期と非同期のパス間で同一です。
静的割り当て、ランタイム発見、設定の組み合わせ、および非同期ワークフローのすべてをカバーしたので、関連するリソースのいくつかをブックマークする価値があります。
次のステップは何ですか?
静的割り当てから動的ランタイム検出まで、PrintSettings.PrinterName経由でプリンター名を特定する方法を説明しました。 重要なポイント: プリンター名は正確に一致させる必要があります (大文字と小文字を区別します)、nullはOSのデフォルトプリンターにデフォルト設定され、印刷ダイアログがプログラムで設定された選択を上書きします。
プリンター名取得の例はスタンドアロンの発見スニペットを提供し、印刷設定ガイドはすべての設定可能なプロパティを詳細にカバーしています。 PrinterクラスAPIリファレンスはすべての静的印刷メソッドを文書化し、PrintSettings APIリファレンスはすべてのフィールドとデフォルトをリストしています。 エンドツーエンドのウォークスルーについては、文書を印刷するチュートリアルがすべての要素をまとめます。
無料の30日間トライアルを開始して、ライブプロジェクトでプリンター選択をテストします。 準備が整ったら、ライセンスオプションを$999から確認してください。
https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.PrintSettings.html https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.PrintSettings.html https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.Printer.html https://ironsoftware.com/csharp/print/how-to/print-settings/https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.Printer.html
よくある質問
IronPrintを使ってC#でプリンタ名を指定するにはどうすればよいですか?
IronPrintを使えば、C#でPrinterNameプロパティを設定することでプリンタ名を指定することができます。これにより、印刷タスクのために特定のプリンタをターゲットにすることができます。
IronPrintとは何か?
IronPrintは、印刷タスクを管理するためのC#アプリケーションにおいて、プリンタ名や他の印刷オプションを指定する機能を提供するIron Softwareのライブラリです。
C#で利用可能なプリンタを発見するにはどうすればよいですか?
IronPrintを使用すると、ネットワーク上の利用可能なプリンタを簡単に発見でき、印刷ジョブに対するPrinterNameを選択することができます。
PrinterNameプロパティを動的に設定することはできますか?
はい、IronPrintを使えば、C#コード内で実行時に希望するプリンタを選択するためにPrinterNameプロパティを動的に設定することができます。
IronPrintを使ってネットワークプリンタに印刷することは可能ですか?
はい、IronPrintは、C#アプリケーション内で適切なPrinterNameプロパティを設定することにより、ネットワークプリンタを指定して印刷することを可能にします。

