0👍
Browsers may have a setting which means background colors and images will not be printed by default.The user has to specifically change this setting to see these. This is to prevent excessive use of inks on densely colored backgrounds.
However, as this question has found, this can mean the printed output is not clear enough or differs from the screen look too much.
There is a CSS property which can be set to try to overcome this:
print-color-adjust: exact;
See MDN
Note that some browsers require -webkit- prefix and also that it is not absolutely guaranteed that this will be enacted.
You may like therefore to consider a couple of other options: advise users to set their browser to print backgrounds or create a version specifically for printing that is readable without backgrounds being printed (for example, having stronger borders).
You could even make this an option for users whether to use background color or not – their choice.