Programmatically Print a PDF File - Specifying Printer

pdf, printing, python

Solution

There's an underdocumented `printto` verb which takes the printer name as a parameter (enclosed in quotes if it contains spaces).

import tempfile
import win32api
import win32print

filename = tempfile.mktemp (".txt")
open (filename, "w").write ("This is a test")
win32api.ShellExecute (
  0,
  "printto",
  filename,
  '"%s"' % win32print.GetDefaultPrinter (),
  ".",
  0
)

snippet from Ja8zyjits's link

Problem

I have a requirement to print an existing PDF file from a Python script. I need to be able to specify the printer in the script. It's running on Windows XP. Any ideas what I could do? This method looks like it would work except that I cannot specify the printer: ``` win32api.ShellExecute ( 0, "print", filename, None, ".", 0 ) ```

Original source

Related problems