For my desktop application, to print pdf's on machines not having the
full version of Adobe Acrobat, but only Adobe Reader, I use PInterop
ShellExecute code based on the following forum post:
I find using the PrintTo verb rather than the Print verb shown in the
above code works better to fit to the pdf pages on the paper.
For machines having the full version of Acrobat I use methods defined in
the Adobe SDK (requires referencing Interop.Acrobat.dll):
CAcroAVDoc avDoc = new AcroAVDocClass();
avDoc.PrintPagesSilent(0, 0, 0, 0, 1);
I had inconsistent success using command line switches like /t.
I was never able to find a way to change default printer properties from
within C Sharp.
I am able to change default printers, however, from within C Sharp using
the PInterop method SetDefaultPrinter.