VB PowerPacks includes Printing.PrintForm which allows a form to be directed to a printer.  Printer settings can be defined programmatically.  (Landscape/Portrait, Margins)

Can I define the PDF filename and folder programmatically as well?

Can I monitor printing progress?  Specifically I need to know that printing has been completed before moving on to processing another form.

Answered question