The Printer.Orientation property is a constant problem. Like many of the Printer Properties whether it has any effect is dependent on the printer driver.
Microsoft have a work-around called Pageset. This project changes the Default Printer settings to change the Orientation. One oversight on Microsoft's part is that it assumes the Default Printer Orientation setting is 'Portrait' so the Reset routine (that should be called after printing) will change the setting to 'Portrait'.
PageSet.exe is a self-extracting executable file that contains a DLL file that allows you to programmatically change the printer orientation.
This DLL is particularly useful when dealing with the Data Report, which reads the default printer orientation prior to displaying or printing a report. PageSet.exe allows you to programmatically change and reset your printer orientation.
Read more on Microsoft:
PageSet.exe Programmatically Changes Default Printer Orientation.
Download Pageset.exe here