Existe-t-il un moyen raisonnablement standard et multiplateforme d'imprimer du texte (ou même PS/PDF) sur l'imprimante définie par le système?
En supposant CPython ici, pas quelque chose d'intelligent comme utiliser Jython et API d'impression Java .
Malheureusement, il n'existe aucun moyen standard d'imprimer en utilisant Python sur toutes les plates-formes. Vous devrez donc écrire votre propre fonction wrapper pour imprimer.
Vous devez détecter le système d'exploitation votre programme fonctionne, puis:
Pour Linux -
import subprocess
lpr = subprocess.Popen("/usr/bin/lpr", stdin=subprocess.PIPE)
lpr.stdin.write(your_data_here)
Pour Windows: http://timgolden.me.uk/python/win32_how_do_i/print.html
Davantage de ressources:
Cela n'a été testé que sur Windows:
Vous pouvez effectuer les opérations suivantes:
import os
os.startfile("C:/Users/TestFile.txt", "print")
Cela démarrera le fichier, dans son ouvreur par défaut, avec le verbe 'print', qui s'imprimera sur votre imprimante par défaut. Requiert uniquement le module os
fourni avec la bibliothèque standard
Pour imprimer sur n'importe quelle imprimante du réseau, vous pouvez envoyer un travail d'impression PJL/PCL directement à une imprimante réseau sur le port 9100.
Veuillez consulter le lien ci-dessous qui devrait donner un bon départ:
http://frank.zinepal.com/printing-directly-to-a-network-printer
De plus, s'il existe un moyen d'appeler Windows cmd, vous pouvez utiliser FTP put pour imprimer votre page sur 9100. Le lien ci-dessous devrait vous donner des détails, j'ai utilisé cette méthode pour les imprimantes HP mais je crois que cela fonctionnera pour d'autres imprimantes.
http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=bpj06165
Vous pouvez essayer la bibliothèque wx. Il s'agit d'une bibliothèque d'interface utilisateur multiplateforme. Ici vous pouvez trouver le tutoriel d'impression: http://wiki.wxpython.org/Printing