Adapter Extensibility

PrintingTools is intentionally layered so you can replace or extend parts of the pipeline without forking the whole stack.

Main extension points

Type Purpose
IPrintAdapter Implement a new backend for a different platform or environment.
IPrintAdapterResolver Control how adapters are chosen for a request or session.
IPrintPaginator Replace the default page splitting strategy.
IVectorPageRenderer Plug in a custom vector exporter.
IPrintPreviewProvider Provide native or specialized preview surfaces.

Common customization pattern

The safest way to inject custom behavior is through PrintingToolsOptions:

PrintServiceRegistry.Configure(new PrintingToolsOptions
{
    AdapterFactory = () => new MyCustomAdapter(),
    DefaultPaginator = new MyPaginator(),
    DiagnosticSink = evt => Logger.LogInformation("[Printing] {Category}: {Message}", evt.Category, evt.Message)
});