Imprimer sur une imprimante standard à partir de Python?

Existe-t-il un moyen raisonnablement standard et multiplateformes pour imprimer du texte (ou même PS/PDF) sur l'imprimante définie par le système?

suppose CPython ici, pas quelque chose d'intelligent comme utiliser Jython et le Java printing API .

24
demandé sur Prof. Falken 2012-10-04 13:03:27

4 réponses

malheureusement, il n'y a pas de méthode standard pour imprimer en utilisant Python sur toutes les plateformes. Vous aurez donc besoin d'écrire votre propre fonction d'emballage pour imprimer.

Vous devez détecter l'OS votre programme est en cours d'exécution, 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

plus de ressources:

imprimer un document PDF avec le module win32print de python?

Comment puis-je imprimer sur l'imprimante par défaut du système D'exploitation en Python 3 (plate-forme croisée)?

23
répondu Anuj Gupta 2017-05-23 12:26:23

cela a seulement été testé sur Windows:

vous pouvez faire ce qui suit:

import os

os.startfile("C:/Users/TestFile.txt", "print")

cela lancera le fichier, dans son ouvreur par défaut, avec le verbe 'print', qui s'affichera sur votre imprimante par défaut.Ne nécessite que le module os qui est livré avec la bibliothèque standard

20
répondu 2014-03-29 18:08:30

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

aussi, S'il y a un moyen d'appeler Windows cmd, vous pouvez utiliser FTP put pour imprimer votre page sur 9100. Lien ci-dessous devrait vous donner des détails, J'ai utilisé cette méthode pour les imprimantes HP, mais je pense qu'elle fonctionnera pour d'autres imprimantes.

http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=bpj06165

6
répondu user1719655 2012-10-04 11:21:02

vous pouvez essayer la bibliothèque wx. C'est une croix-plate-forme de l'INTERFACE utilisateur de la bibliothèque. Ici vous pouvez trouver l'impression tutoriel: http://wiki.wxpython.org/Printing

2
répondu Admdebian 2015-03-06 00:40:26