They work in different ways and do different things-- and, most important, they have no effect on each other.
Coincidentally I was looking up these properties just a few days ago. Crucial detail under "display: none" (emphasis theirs):
Descendant elements do not generate any boxes either; the element and its content are removed from the formatting structure entirely. This behavior cannot be overridden by setting the 'display' property on the descendants.
"visibility" otoh can be toggled off and on.
An easy copout solution is to distribute the entire document among two classes of div, like "printstyle" and "screenstyle", with mirror-imaged @media rules. (I've personally done this, though admittedly not for an entire document.)
when I print it a non-modal pages
Now, if I could figure out whether you mean "model" or "modal", and what it refers to...