public interface PrinterGraphics
This maybe useful to know that you are printing but its initial purpose is that it should be used to decide whether to do things like caching.
Existing code that does caching of shapes, textures or other resources that assumes there is only ever a single destination, and so cache an object that can only be used with a specific graphics pipeline.
So if a Graphics is tagged with this interface, do not do cache lookup, nor store in a cache.