@ju52 is right. this should not be done via outputformats or any hack because there is already a simple <link rel="stylesheet" media="print" href="your-printstylesheet.css"/> existing and all you need to do is add your styles for print to such a file. Defining two pages, one for screen, one for print, makes the visitor load two pages. If they decide to print your page via “CTRL+P” or however their browser does it then the page get’s printed in it’s design anyway. Why not doing it proper right away and add a script to your print button that just calls the dom-windows internal printer. <a href="javascript:window.print()">Print</a>
https://www.smashingmagazine.com/2011/11/how-to-set-up-a-print-style-sheet/