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

Qt Discussion :

Dessiner une facture, format A4 et QPrinter


Sujet :

Qt

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Dessiner une facture, format A4 et QPrinter
    Bonsoir,

    dans un de mes programmes j'aimerai pouvoir dessiner une facture, l'afficher dans une vue, et ensuite pouvoir l'exporter en PDF.

    Pour le moment j'ai testé les QGraphicsView, Scene etc, pour dessiner ma facture. Bon c'est un peu fastidieux mais j'arrive à dessiner.
    Pour l'export en PDF j'utilise la méthode "render" sur la scène avec un QPainter créé à partir d'un QPrinter (pfou). Ici ça marche plus ou moins.

    Cependant j'ai quelques questions:
    - Premièrement, est-ce qu'avec QTextDocument on peut faire des choses un peu compliquées ? Dessiner une entête, mettre une image, un fond etc
    - Deuxièmement, j'essaye de récupérer la taille de la page imprimable pour initialiser mon sceneRect(). Pour ça j'utilise "pageRect()" de QPrinter, mais le problème c'est quelle unité utiliser ? Sachant que si je mets mon QPrinter en résolution "ScreenResolution", la taille retournée fait 700x500 environ, ce qui ne correspond pas vraiment, et si je le mets en "HighResolution" ça va être du 3000x quelque chose.

    Je ne suis pas très clair, donc en gros je voudrais afficher une vue qui ressemblerait à la visualisation d'une page d'un document Word, et de pouvoir ensuite imprimer ça *mais à la bonne échelle* dans un PDF, sans problèmes.

    Merci bien.

  2. #2
    Rédacteur

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 3 742
    Points : 8 140
    Points
    8 140
    Par défaut
    Personnellement j'ai déjà utilisé du code tel que le suivant pour une impression de facture :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    QPrinter p;
    QPrintDialog pd(&p, 0);
    if (pd.exec() == QDialog::Accepted)
    {
        QPainter painter;
        painter.begin(&p);
        painter.drawLine(p.pageRect().width() / 2, 0, p.pageRect().width() / 2, p.pageRect().height());
        painter.drawLine(0, p.pageRect().height() / 2, p.pageRect().width(), p.pageRect().height() / 2);
        painter.drawImage(25, 25, QImage(":/images/logo"));
        QFont f;
        f.setPointSize(10);
        f.setBold(true);
        painter.setFont(f);
        painter.drawText(100, 75, "Facture du mois de Janvier");
     
        p.newPage();
        painter.drawText(100, 100, "Nouvelle page");
        painter.end();
    }
    J'ai mis un peu n'importe quoi, des commandes qui pourrait t'aider. Je ne suis même pas sur que ce bout de code compile. C'est pour te donner une idée. J'espère que ça pourra t'aider.

  3. #3
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    pour une facture, je partirais sur le principe expliqué ici
    http://qt-quarterly.developpez.com/qq-27/ecrire-odf/
    sauf qu'au lieu de faire un odf, tu imprime ou tu fait un pdf

Discussions similaires

  1. [Swing][Graphics2D] dessiner une flèche
    Par Galima dans le forum 2D
    Réponses: 13
    Dernier message: 03/12/2011, 23h31
  2. Générer une facture au format PDF
    Par lama85 dans le forum Langage
    Réponses: 1
    Dernier message: 21/08/2006, 18h46
  3. Dessiner une ligne
    Par Bugmaster dans le forum 2D
    Réponses: 6
    Dernier message: 29/07/2004, 08h36
  4. Dessiner une image en arrière plan d'1 MDI Main Frame
    Par Yacine95000 dans le forum MFC
    Réponses: 3
    Dernier message: 14/06/2004, 10h22
  5. Dessiner une ligne dans un cube transparent ?
    Par Muetdhiver dans le forum OpenGL
    Réponses: 4
    Dernier message: 04/05/2004, 11h06

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