IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Utilisation d'une imprimante


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 9
    Points : 13
    Points
    13
    Par défaut Utilisation d'une imprimante
    Est-il difficile de faire un programme qui imprime (sur une imprimante) un dessin ou du texte ?

    Sur developpez.com j'ai téléchargé et parcouru la FAQ Python, les traductions du Tutoriel de Guido van Rossum, et de Dive Into Python. Sur www.python.org, ou http://infohost.nmt.edu/tcc/help/pubs/lang.html, le remarquable Python 2.5 quick reference, et pas mal de documentation sur Tkinter.

    J'ai aussi lu Programmer avec Python de Swinnen et parcouru Python en concentré dans l'édition 2004.

    Je suis sans doute loin d'avoir assimiler le quart ou peut-être le dixième des plus faciles de ces documentations mais on ne pourra pas dire que je n'ai fait aucun effort, et je ne parviens pas à trouver d'allusion à l'utilisation d'une imprimante dans ce qui précède. Lorsque le terme impression est utilisé il désigne toujours l'écran.

    Je suis passé à côté de quelque chose de simple, ou bien il faut être un geek pour le faire ?

    A

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    Si c'est sous Windows, tu trouveras des informations ici: http://timgolden.me.uk/python/win32_how_do_i/print.html

    Je ne pense pas qu'il y ait de solution portable...

  3. #3
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 474
    Points : 9 274
    Points
    9 274
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    A mon avis, il faut voir du côté des bibliothèques graphiques.

    Par exemple, il existe la classe QPrinter pour la bibliothèque PyQt4.

    Petit exemple de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    import sys
    from PyQt4.QtCore import *
    from PyQt4.QtGui import *
     
    Appli=QApplication(sys.argv)
    printer=QPrinter()
    doc=QTextDocument("Hello" )
    dialog = QPrintDialog(printer)
    dialog.setModal(True)
    dialog.setWindowTitle("Print Document" )
    # dialog.addEnabledOption(QAbstractPrintDialog.PrintSelection)
    if dialog.exec_() == True:
        doc.print_(printer)
    qui m'imprime une page avec "Hello", après m'avoir demandé quelle imprimante je voulais. J'ai fait ça sur Windows 7, mais rien n'indique que c'est spécifique à la plateforme Windows.

    Après, il faut construire la mise en page pour obtenir ce qu'on veut.

    Je ne sais pas faire ça avec tkinter, mais il y a peut-être des solutions?

    Voir aussi avec les autres bibliothèques graphiques (wxPython, PyGtk, ...).

    En tout cas, il n'y a rien de simple...

    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  4. #4
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    J'ai fait ça sur Windows 7, mais rien n'indique que c'est spécifique à la plateforme Windows.
    Je viens de tester sous Mac et cela marche sans souci, j'ai pu imprimer au format PDF (comme cela est proposé par défaut sur un Mac).

    A titre perso., dans mon projet perso., je sais je suis un peu trop perso. , je vais produire des documents destinés à être imprimé. J'ai fait le choix de passer par LaTeX pour fabriquer un document PDF. Une fois ce dernier produit, il sera automatiquement ouvert pour que l'utilisateur puisse le faire imprimer.

    Il y a aussi ReportLab qui permet de produire du PDF.

    Question à tyrtamos. Peut-on adapter ton code afin qu'il propose d'imprimer un fichier PDF existant ?

  5. #5
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 474
    Points : 9 274
    Points
    9 274
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par rambc Voir le message
    Question à tyrtamos. Peut-on adapter ton code afin qu'il propose d'imprimer un fichier PDF existant ?
    Je n'ai pas trouvé, mais, à mon avis, il est plus simple de passer par un appel au reader d'acrobat.

    Par exemple sous Windows, le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    import win32api
     
    nfcpdf = "pdffile.pdf"
    win32api.ShellExecute(0, "print", nfcpdf, None, None, 0)
    imprime le fichier pdffile.pdf sur l'imprimante par défaut. Pour cela, il fait venir la fenêtre d'acrobat reader, mais on n'a pas besoin d'y toucher. On devrait pouvoir trouver l'équivalent sous les autres OS.

    Comme tu as pu le voir, PyQt4 peut fabriquer du pdf, et c'est le mode par défaut quand on imprime dans un fichier. On peut créer aussi du .ps (postscript) sur demande. Mais il s'agit d'imprimer des pages construites avec PyQt4, et pas lues en pdf sur disque.

    Autre solution: convertir les pages pdf en images (bmp, jpg, ...) grâce à Ghostscript (qui existe sous tous les OS: http://sourceforge.net/projects/ghos...ostscript/8.71) pour les imprimer avec PyQt4. Mais je n'ai pas essayé.

    Ces sujets m'intéressent aussi pour mes projets "perso" . Si je trouve quelque chose plus tard, je le mets ici:

    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 9
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par dividee Voir le message
    Si c'est sous Windows, tu trouveras des informations ici: http://timgolden.me.uk/python/win32_how_do_i/print.html
    Ça a l'air intéressant mais je n'ai pas win32api, et celui que j'ai trouvé n'a pas voulu s'installer parce qu'il demandait Python 2.6 alors que j'ai la version 2.4.

    J'ai donc essayé de trouver la version 2.6 mais je n'ai trouvé que la version 2.7, que j'ai tenté d'installer en me disant que la bibliothèque serait peut-être plus complète. L'installation a été rapide mais pour des raisons que j'ignore cette version ne marche pas chez moi. Dans le menu démarrer, Python (command line) fonctionne, et je ne sais pas l'utiliser (sous Python 2.4 j'utilise une fenêtre appelée Python Shell), mais IDLE (Python GUI) ne produit pas d'effet ni de message d'erreur (de même que Module Doc). Je suppose que ça ne doit pas être dû au fait que je n'ai pas désinstallé Python 2.4.

    Bon voilà. J'espère ne pas trop alourdir le fil que j'ai lancé sur un sujet plus intéressant.

    A

  7. #7
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut
    Merci tyrtamos. Lancer le lecteur par défaut de PDF me suffit largment car cela permet de vérifier que le document produit est correct.

    D'un autre côté pouvoir lancer directement l'impression serait aussi sympa.

    Par contre la conversion me semble une solution trop lourde.

  8. #8
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 474
    Points : 9 274
    Points
    9 274
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Antonioni Voir le message
    Ça a l'air intéressant mais je n'ai pas win32api, et celui que j'ai trouvé n'a pas voulu s'installer parce qu'il demandait Python 2.6 alors que j'ai la version 2.4.
    Toutes les versions de win32 pour toutes les versions de Python sont ici: http://sourceforge.net/projects/pywin32/files/.

    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  9. #9
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 9
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Toutes les versions de win32 pour toutes les versions de Python sont ici: http://sourceforge.net/projects/pywin32/files/.
    En fait c'est là que j'avais regardé et je m'étais trompé de version. Mais je ne sais pas si c'est là qu'il fallait regarder, car il y a bien quelque chose qui ressemble mais on dirait que ce n'est pas tout à fait win32api. Tout au moins j'ai installé une version qui cette fois devait être pour Python 2.4 (l'installation a marché) et import win32api ne marche toujours pas. (Ce que j'ai installé s'appelle pywin32-214.win32-py2.4)

    En revanche j'ai aussi installé PyQt4 et grâce à ça l'exemple avec la classe QPrinter fonctionne (sous windows XP).

    Ce n'est pas encore du graphisme, mais il faudra que j'essaie de suivre le reste du fil. (Ce n'est pas trop clair pour moi il faut avouer.)

  10. #10
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 720
    Points : 31 037
    Points
    31 037
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Antonioni Voir le message
    J'ai donc essayé de trouver la version 2.6 mais je n'ai trouvé que la version 2.7
    http://www.python.org/ftp/python/2.6.5/python-2.6.5.msi

    Citation Envoyé par Antonioni Voir le message
    Je suppose que ça ne doit pas être dû au fait que je n'ai pas désinstallé Python 2.4.
    Tu veux sans doute dire "Je suppose que ça doit être dû au fait que je n'ai pas désinstallé Python 2.4.
    Et c'est tout à fait exact. Si tu installes Python 2.6 sans désinstaller 2.4 il y a alors risque de conflit au niveau des dossiers Python...

    Citation Envoyé par Antonioni Voir le message
    Bon voilà. J'espère ne pas trop alourdir le fil que j'ai lancé sur un sujet plus intéressant.
    Moi aussi. Surtout que ça fait déjà qq temps que je cherche à imprimer et en plus sur des imprimantes assez spéciales (par exemple une imprimante de tickets de caisse EPSON H6000II elle-même reliée à un tiroir-caisse et à un afficheur digital et j'aimerais pouvoir écrire sur cette imprimante et sur l'afficheur et faire ouvrir le tiroir caisse mais je trouve que dalle à ce sujet nulle part...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Utiliser une imprimante déportée en Java
    Par gnawa dans le forum Langage
    Réponses: 6
    Dernier message: 23/03/2011, 10h43
  2. utiliser une imprimante spécifique en java
    Par the watcher dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 06/11/2010, 00h16
  3. cacher une imprimante et l'utiliser sur réseau
    Par k_boy dans le forum Windows XP
    Réponses: 1
    Dernier message: 18/10/2009, 11h57
  4. Comment installer une imprimante qui fonctionne en utilisant le protocole LPR?
    Par masterx_goldman dans le forum Périphériques
    Réponses: 0
    Dernier message: 12/08/2009, 20h03
  5. Utilisation d'une imprimante matricielle
    Par karkass59 dans le forum Débuter
    Réponses: 16
    Dernier message: 19/07/2009, 21h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo