Table of Contents

Class PrinterDiscoveryService

Namespace
combit.Reporting.Printing.Pdf
Assembly
combit.ListLabel31.CrossPlatform.Printing.Pdf.dll

Default implementation of IPrinterDiscoveryService that delegates to a platform-specific combit.Reporting.Printing.Pdf.Internal.IPrinterCapabilityProbe. Enumerate printers:

using combit.Reporting.Printing.Pdf;

using var discovery = new PrinterDiscoveryService();
IReadOnlyList<PrinterInfo> printers = await discovery.GetPrintersAsync();
foreach (PrinterInfo printer in printers)
{
    Console.WriteLine(printer.Name);
}
Query capabilities for a specific printer:
using combit.Reporting.Printing.Pdf;

var printerName = "My Printer"; using var discovery = new PrinterDiscoveryService(); PrinterCapabilities? capabilities = await discovery.GetCapabilitiesAsync(printerName); if (capabilities is not null) { Console.WriteLine($"PDF passthrough: {capabilities.SupportsPdfPassthrough}"); }

public sealed class PrinterDiscoveryService : IPrinterDiscoveryService
Inheritance
PrinterDiscoveryService
Implements
Inherited Members

Constructors

PrinterDiscoveryService(ILogger?)

Initializes a new instance of the PrinterDiscoveryService class using the platform-default capability probe.

public PrinterDiscoveryService(ILogger? logger = null)

Parameters

logger ILogger

Optional logger for structured diagnostics. When null, logging is disabled.

Methods

GetCapabilitiesAsync(string, CancellationToken)

Queries the detailed capabilities of a specific printer.

public Task<PrinterCapabilities?> GetCapabilitiesAsync(string printerName, CancellationToken cancellationToken = default)

Parameters

printerName string

The system name of the printer to query.

cancellationToken CancellationToken

Token used to observe cancellation requests.

Returns

Task<PrinterCapabilities>

A PrinterCapabilities describing the printer's features, or null when the printer does not exist or its capabilities cannot be determined.

Exceptions

ArgumentNullException

Thrown when printerName is null.

GetPrinterAsync(string, CancellationToken)

Retrieves information about a specific printer by its system name.

public Task<PrinterInfo?> GetPrinterAsync(string printerName, CancellationToken cancellationToken = default)

Parameters

printerName string

The system name of the printer to look up.

cancellationToken CancellationToken

Token used to observe cancellation requests.

Returns

Task<PrinterInfo>

A PrinterInfo for the requested printer, or null when no printer with the specified name exists.

Exceptions

ArgumentNullException

Thrown when printerName is null.

GetPrintersAsync(CancellationToken)

Enumerates all printers available on the current system.

public Task<IReadOnlyList<PrinterInfo>> GetPrintersAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Token used to observe cancellation requests.

Returns

Task<IReadOnlyList<PrinterInfo>>

A read-only list of PrinterInfo instances describing each discovered printer. Returns an empty list when no printers are found.