MikeHunter's answer was a decent starting point.
The proposed solution calls Acrobat or Acrobat Reader to actually print, not to go through win32api . For my purposes this is enough:
from subprocess import call acrobat = "C:\Program Files\Adobe\Acrobat 7.0\Acrobat.exe" ## Acrobat reader would also work, apparently file = "C:\path\to\my\file.pdf" printer = "Printer Name Goes Here" call([acrobat, "/T", file, printer])
This will launch Acrobat and print the given file to a named printer, even if it is not Windows by default. The first print job processed in this way takes a few seconds (I assume this is a running and cached Acrobat service), subsequent jobs print instantly. I have not performed any load tests, but I assume that the call is less than trivial, so do not trust it for massive bandwidth.
source share