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

Tkinter Python Discussion :

tkinter + matplotlib + impression


Sujet :

Tkinter Python

  1. #1
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut tkinter + matplotlib + impression
    Salut,

    Je cherche à savoir si il existe un bon moyen de gérer l'impression avec tkinter et matplotlib (d'un fichier texte, d'une courbe, ...).

    Pour l'instant la plupart des solutions que j'ai vues utilisent l'api windows... Mais dans ces exemples on est loin d'une gestion du genre de celle que l'on peut voir dans certains logiciels genre :

    - Liste des imprimantes disponibles et choix de l'imprimante par défaut...
    - Prévisualisation
    - Choix de l’orientation (paysage ou portrait)
    - Marges, dimensions...


    Et aussi la possibilité d'ajouter du texte à l'image de la courbe genre pour indiquer l'heure et la date, le nombre de points...

    Est-ce que quelqu'un a déjà fait ce genre de choses ?

    Bien sûr je vais continuer à chercher de mon coté (quitte à écrire un code dans un autre langage qui communiquerait avec le code python) mais je demande pour éviter de réinventer la roue... Cela m'est déjà arrivé de me prendre la tête à écrire des fonctions qui existaient déjà !

    Merci.

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 044
    Par défaut
    Hello,

    Je ne connais pas de module faisant cela, il se trouve qu'il y a quelques années, j'avais ce besoin et j'ai dû aller jusqu'à utiliser jython et une librairie Java pour gérer l'impression et reconnaître des imprimantes.
    Sauf que jython s'utilise avec python 2.x dans mes souvenirs et qu'il n'y a pas de possibilité en version 3.x.

    Par contre il existe JEP qui fait un équivalent, et des librairies Java qui gèrent les imprimantes doivent exister.

    En pure python, dans mes souvenirs je n'avais rien trouvé non plus...

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Ok merci. C'est donc à voir...

    Pour l'instant j'ai testé ce module : https://timgolden.me.uk/pywin32-docs/win32print.html ...

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 044
    Par défaut
    Oui mais c'est pas portable !

    J'ai testé JEP ça fonctionne bien en tout cas pour avoir la liste des imprimantes, imprimante par défaut, etc...

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    Merci d'avoir essayé...

    J'ai aussi réussi (avec le module win32print) à avoir la liste des imprimantes, l'imprimante par défaut et sélection de celle-ci mais comme tu dis ce n'est pas portable puisque cela utilise l'api windows...

    Mais j'ai trouvé difficile la mise en œuvre de ce module, il n'y a pas assez d'explications et d'exemples... Je trouve aussi que cela est fastidieux mais peut-être que c'est moi qui l’utilise mal... On a par exemple une méthode "drawtext" pour afficher du texte mais je ne trouve pas ça pratique, il faut tout calculer soi-même apparemment ??? Genre juste un texte de deux lignes il faut calculer sois même les coordonnées de la deuxième ne serais-ce pour éviter un chevauchement ? Et ne parlons pas du formatage, des polices...

    Du coup je me suis demandé comment font les logiciels pour imprimer des documents qui peuvent avoir un contenu complexe (images, tableaux, textes avec formatage, différentes polices,...) .

    Je me demande si ce n'est pas mieux de travailler sur des images avec une bonne librairie et ensuite on balance là l'imprimante...

  6. #6
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 044
    Par défaut
    Hello,

    Du coup je me suis demandé comment font les logiciels pour imprimer des documents qui peuvent avoir un contenu complexe (images, tableaux, textes avec formatage, différentes polices,...) .
    En règle générale, tout ce qui est appareil électronique (sauf raspberry, Arduino, ...) utilise Java... du coup voilà le pourquoi de ma proposition.

    EDIT : ça te permet de faire l'interface graphique en python et d'avoir les données de l'imprimante via JEP.

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    Oui ta proposition est intéressante mais comme pour l'instant je n'ai pas besoin d'une solution portable je me suis contenté des solutions que j'avais trouvées...

    Après je me suis demandé si ce n'est pas mieux de travailler sur des images avec une bonne librairie, ce serait je pense plus simple mais en plus le travail sur image est indépendant du problème de l’imprimante et peut se faire en python...

    Et du coup j'y voit aussi une solution pour faire un aperçu avant impression... Les aperçus sont plus ou moins sophistiqués, celui de libreoffice par exemple est intéressant, il y a un aperçu de toutes les pages que l'on peut afficher de différentes manières, il y a des zoom + et -, ...

    Je ne sais pas comment les aperçus sont faits mais je me dis que cela doit être possible de faire cela par traitements d'images...

  8. #8
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 304
    Par défaut
    Salut,

    Avec PyQt tu peux gérer totalement l'impression sur n'importe quel OS tout en restant sous Python.

    Un exemple complet ici:
    https://bazaar.launchpad.net/~vincen...head:/printing

    Le code à l'air complexe mais c'est parce qu'il crée des pdf multipage, sans cela c'est plutôt simple.

  9. #9
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,

    Avec PyQt tu peux gérer totalement l'impression sur n'importe quel OS tout en restant sous Python.

    Un exemple complet ici:
    https://bazaar.launchpad.net/~vincen...head:/printing

    Le code à l'air complexe mais c'est parce qu'il crée des pdf multipage, sans cela c'est plutôt simple.
    Merci. Il me semble que dans mes recherches j'étais tombé sur un lien qui parlait d'une solution avec PyQt mais je n'ai pas approfondi car j'utilise tkinter...

    Il semblerait que cela soit aussi prit en charge par wxPython...

    En tous cas le code dont tu as donné semble intéressant, il prend en charge "l'aperçu avant impression" si j'ai bien compris...

Discussions similaires

  1. Problème tkinter & matplotlib
    Par alexis_37 dans le forum Général Python
    Réponses: 6
    Dernier message: 25/05/2021, 20h19
  2. [Python 3.X] Changement d'intitulé : tkinter matplotlib mise à jour graphe
    Par marco056 dans le forum Tkinter
    Réponses: 10
    Dernier message: 19/10/2017, 21h26
  3. plot de Matplotlib sous Tkinter?
    Par Invité dans le forum Tkinter
    Réponses: 7
    Dernier message: 28/02/2011, 13h22
  4. [matplotlib] Croubes dans une interface tkinter
    Par vinzzzz dans le forum Tkinter
    Réponses: 2
    Dernier message: 08/12/2006, 14h34
  5. [matplotlib][Tkinter] Conflit figure/Tk ?
    Par Panthère Bleue dans le forum Calcul scientifique
    Réponses: 2
    Dernier message: 12/07/2006, 08h48

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