We want to allow users to choose page size and orientation. Then we want to scale our printing to fit those settings.
We used the .Net PageSetupDialog to allow the user to set the page to 11 by 17 Landscape.
PageSetupDialog setup = new PageSetupDialog();
if(setup.ShowDialog() == DialogResult.OK)
settings = setup.PageSettings;
Check out GoView.PrintShowDialog and PrintPreviewShowDialog, which allow you to modify the PrintDocument before doing the standard behavior, or just return DialogResult.OK, or whatever.