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

PyQt Python Discussion :

Délai pour la génération de PDF


Sujet :

PyQt Python

  1. #1
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut Délai pour la génération de PDF
    à tous,

    Dans l'un de mes programmes Qt Quick j'ai besoin de générer des fichiers PDF. J'ai tout d'abord utilisé ReportLab qui fonctionne parfaitement bien, mais que je trouvais légèrement long pour certaines génération. J'ai donc essayé avec le trio QPrinter - QTextDocument - QPainter.
    Encore mieux, j'ai même décidé de le faire en C++ histoire de tout cartonner ... (mon premier vrai code C++ )



    3.6 fois plus long en C++ / Qt qu'en Python / ReportLab....

    Question : avez-vous déjà noté une différence notable en les performances de ReportLab et PyQt pour générer des PDF ou c'est mon code C++ qui est trop pourri ?

    J'ai pas encore fait le test en PyQt mais ça me branche pas vraiment au regard des résultats de C++.

    Qu'en pensez-vous ?


    ++


    J
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    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 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour Jiyuu,

    Pour ma part, je ne fabrique mes pdf qu'avec PyQt, et j'en suis plutôt content.

    Par exemple, dans le cadre d'un concours, je fabrique 400 courriers personnalisés d'une ou deux pages A4. Ces courriers sont déjà assez complexes avec entête, bas de page, gestion automatique de pages, logo, images, tableau, adresse pour enveloppe à fenêtre, etc... Tout cela créé à partir d'un texte html et d'extraction d'une base de données. Cela me donne 400 fichiers pdf qui sont créés en moins d'une minute (soit 0.15s/courrier), ce qui me convient parfaitement.

    A noter que j'envoie ces fichiers pdf en pièce jointe d'emails envoyés dans le monde entier (40 pays) avec un de mes programmes Python. Et si je veux les envoyer par la poste, je regroupe automatiquement ces 400 fichiers pdf en un seul fichier avec PyPDF2 pour faciliter l'impression papier.

    Toujours pour ce même concours, je fabrique aussi des diplômes (48!) avec la même méthode, sur la base d'une image faite avec Publisher et imprimés sur un joli papier: ça marche aussi très bien.

    Tout cela ne veut pas dire que c'est facile... D'abord parce que le "richtext" de Qt n'est qu'un sous-ensemble d'html (il faut donc souvent se reporter à la doc pour en comprendre les limitations), et ensuite parce que les exemples sur le web sont plutôt limités sur le sujet...

    Peut-être devrais-je faire un tuto sur le sujet, mais je commence à en avoir une longue liste en projet...
    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

  3. #3
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Salut Tyrtamos et merci pour ta contribution,


    J'avais aussi l'habitude d'utiliser PyQt mais ma curiosité m'a poussé à tester ReprtLab... Je ne pensais pas qu'il y aurai tant d'écart. Pour les tests effectués on parle de quelques secondes, à voir avec des éléments plus gros.

    Mais je vais tout de même traduire en Python mon code C++, ça sera toujours utile.

    Question complémentaire : Habituellement on utilise QPrinter pour la génération de PDF. En faisant quelques recherches je suis tombés sur QPdfWriter. Tu as une idée de ce qu'il apporte en plus que QPrinter ?
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  4. #4
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    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 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Jiyuu Voir le message
    Question complémentaire : Habituellement on utilise QPrinter pour la génération de PDF. En faisant quelques recherches je suis tombés sur QPdfWriter. Tu as une idée de ce qu'il apporte en plus que QPrinter ?
    Comme il n'existe qu'en PyQt5, je n'ai pas eu le temps de l'utiliser. Peut-être que ça simplifie?

    Une des choses compliquées avec QPrinter, c'est que la partie html ne tient pas compte des pages (A4, A3, ...) et qu'il faut donc utiliser des astuces pour gérer les pages quand même (d'où nécessité du QPainter). L'existence d'une classe spécialisée "pdf" suggère que cette gestion de page serait plus simple. A voir.
    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

  5. #5
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Comme il n'existe qu'en PyQt5, je n'ai pas eu le temps de l'utiliser. Peut-être que ça simplifie?
    Justement, j'ai pas vraiment l'impression. Je m'attendais à des améliorations comme le saut de page automatique, ne plus avoir éventuellement à passer par un QPainter (ou en tout cas, sans que l'on soit obligé de le faire nous même), ...
    Mais pour le moment quenini ...

    En verra en approfondissant.
    Éventuellement, je testerai mon code avec QPdfWriter, qui sait, ça ira peut-être plus vite elle est peut-être là l'amélioration
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

Discussions similaires

  1. Ajouter une police pour génération en pdf
    Par LesLemmings dans le forum iReport
    Réponses: 1
    Dernier message: 05/08/2009, 12h26
  2. Réponses: 3
    Dernier message: 20/04/2009, 09h39
  3. [Java] Jasper & FOP : comparaison des outils servant pour la génération de PDF
    Par sovop dans le forum Autres outils décisionnels
    Réponses: 1
    Dernier message: 13/06/2007, 09h46
  4. expiration du délai pour une page
    Par yahia dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 21/06/2004, 12h03

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