Add a watermark only when printing

You may want to add a watermark to a document only when printing. At the moment, this is only possible when using PSPDFKit.PrintMode.DOM by executing the drawing commands in renderPageCallback during printing. This can be achieved with a snippet like the following:

let printingPage = -1;
let instance = null;
let isPrinting = false;
PSPDFKit.load({
renderPageCallback: (ctx, pageIndex, pageSize) => {
if (!isPrinting) {
return;
}
printingPage++;
if (printingPage === instance.totalPageCount - 1) {
// Finished printing. Reset.
printingPage = -1;
isPrinting = false;
}
// Render the watermark.
}
}).then((_instance) => {
instance = _instance;
});
function pspdfkitPrint() {
isPrinting = true;
instance.print(PSPDFKit.PrintMode.DOM);
}
function pspdfkitCancelPrint() {
isPrinting = false;
instance.abortPrinting();
}

Call pspdfkitPrint() to print.

It might be necessary to replace the built-in print toolbar button.

When pressing Command-P or Control-P, Nutrient will print using the default behavior and won’t invoke the pspdfkitPrint function. To override the keyboard shortcut behavior or disable keyboard shortcuts, you’ll need to register a custom event handler in instance.contentDocument.