Вообще задача интересная и неоднозначная. Решений может быть довольно много.
Мне давно нужно было заставить работатьт виндусовский принтер под Linux (по сети). Идея была в том, что создавался фэйковый принтер, который автоматом закидывал файлы в специальную директорию под виндой, для винды прилагался супер скрипт, который следит за изменениями в директории, и если таковые появлялись, то запускал появившиеся файлы в печать. Супер крутой скрипт не работыл, а все надо было сделать очень быстро, поэтому написал скрипт dirwatch.py:
import os
import time
while 1:
for root, dirs, files in os.walk('c:\\PrintSpool'):
for name in files:
if name=='Thumbs.db':
continue
if len(name.split())>1:
regularName = ''
for i in name.split():
regularName+=i
else:
regularName=name
fullNameRaw = os.path.join(root, name)
fullName = os.path.join(root, regularName)
os.rename(fullNameRaw, fullName)
print fullName
cmd = '''"C:\\Program Files\\Ghostgum\\gsview\\gsprint.exe" -color ''' + fullName
print cmd
os.system(cmd)
print 'remove file'
os.remove(fullName)
time.sleep(30)
каждые 30 секунд он проверяет наличие новых файлов, и отдает их в печать, после чего удаляет. В статье используется что-то типа листенеров - круто, сложно.