PrintingTools is intentionally layered so you can replace or extend parts of the pipeline without forking the whole stack.
| 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. |
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)
});