Das Problem 3 hat mich auch mal lange Zeit beschäftigt. Den ShellExecute Befehl über "Print" kann man getrost vergessen.
Zum Drucken der PDF brauchts auf jeden Fall ein Programm, das die PDF darstellen und drucken kann. Für die meisten sollte das der Acrobat Reader sein. Und genau diese druckt nichts aus über den ShellExecute (
handle, "print",....) Befehl, sondern öffnet bestenfalls den Druckerdialog von Acrobat.
Nach etwas Suche im Netz bin ich dann auf GhostView in Verbindung mit GhostScript gestossen. GhostView hat eine Shell namens GSPRINT.exe. Damit ging dann bei mir alles wie es soll. Die Parameter von GSPRINT stehen in der Doku von Ghostview.