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

wxWidgets Discussion :

wxDC et impression sur imprimante


Sujet :

wxWidgets

  1. #1
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 52
    Points : 46
    Points
    46
    Par défaut wxDC et impression sur imprimante
    BOnjour,

    J'ai un souci assez serieux sur les wxDC, surtout au moment de l'impression.

    Je m'explique :

    Je desirais faire l'impression de certains données (des lettres, avec objet, date,etc).
    Mais en plus de cela, je voulais inserée des trait a la fin de la page, si seulement
    il n'ya rien deja dessiné dessus (si il n'ya que du blanc en fin de page, a la derniere
    ligne, je trace une ligne, sinon je ne trace rien).
    C'etait pour gerer les coupures de lignes de tableau quand j'en insere un.
    En effet quant un tableau est imprimer et que l'espace qui reste n'est pas suffisant il

    arrive de dessigne la ligne de separation entre ligne de tableau, de sauter a lapage

    suivante et de continuer le tableau, la ligne de tableau sur cette nouvelle page reste

    ouvert vers le haut.
    Souvent c'est la derniere ligne de tableau qui reste ouvert vers le bas.

    Alors, j'ai utiliser le wxHtmlPrintout car il derive du wxPrintOut qui lui permet de
    jouer sur les pages de l'impression, contrairement a wxEasyHtmlPrinting.

    Alors j'ai creer un MyPrintOut qui derive de wxHtmlPrintOut, et j'ai
    surcharger la methode OnPrintPage(int nuumPage)

    dans cette fonction j'appelle le OnPrintPage du parent qui est wxHtmlPrintout
    avant de capturer le DC de ce dernier. Ensuite je verifie par un GetPixel(int x,int

    y,&colour)
    Si la couleur est blanche, je trace une ligne a cette place, sinon je ne trace rien

    Mais voila, je getPixel renvoi TOUJOURS du BLANC. comme si riend ne se dessinais sur la

    page.
    Comme hypothese:
    -Soit rien n'est prix en compte avant le return TRUE en fin de fonction de OnprintPage
    -Soit je prend pas bien le DC ou je decode mal le resultat de getpixel
    -soit je suis foutu et ya rien a dire

    je me suis amusé meme a mettre du dc->SetBackgroundMode(wxSOLID) avec une couleur verte
    sur toute la page. Malgré cela, le getpixel renvoi toujour du blanc.

    Alors je comprend plus rien. Cest comme si le GetDC ne renvoi rien ou alors je fais mal
    la manipulation. Je met en bas le code de mon MyPrintOut.
    il est fait juste pour voir si la couleur est capturé.(je me demande si je prend le bon DC)


    fichier entete .h
    -----------------
    #ifndef MYPRINTOUT_H
    #define MYPRINTOUT_H

    #include "wx/html/htmprint.h"

    class MyPrintout : public wxHtmlPrintout
    {
    public:
    MyPrintout(wxString title=_(""));
    virtual ~MyPrintout();
    virtual bool OnPrintPage(int pageNum);
    protected:
    private:
    };

    #endif // MYPRINTOUT_H


    le fichier cpp
    --------------
    #include "myprintout.h"
    #include "wx/dcprint.h"
    #include "wx/msgdlg.h"
    #include "wx/gdicmn.h"
    #include "wx/dcmemory.h"

    MyPrintout::MyPrintout(wxString title):wxHtmlPrintout(title)
    {
    //ctor
    }

    MyPrintout::~MyPrintout()
    {
    //dtor
    }

    bool MyPrintout::OnPrintPage(int pageNum)
    {
    wxDC *dc=GetDC();
    //wxHtmlPrintout::OnPrintPage(pageNum);
    dc->SetBrush( *wxGREEN_BRUSH );//FONT de page vert

    wxFont font(12, wxFONTFAMILY_SWISS, wxNORMAL, wxNORMAL);
    dc->SetFont(font);

    dc->DrawText(htmltext,marginl,margint);

    wxColourDatabase coldb;
    dc->SetBackgroundMode(wxSOLID);

    for(int j=0;j<200;j++)
    for(int i=0;i<200;i++)
    {
    if(dc->GetPixel(i,j,&color))
    {
    if(coldb.FindName(color).MakeLower().CompareTo(_("white")))
    {
    wxMessageBox(coldb.FindName(color));
    break;
    }
    }
    }

    return true;
    }

    Merci de m'aider

  2. #2
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 52
    Points : 46
    Points
    46
    Par défaut
    bonjour,
    je reviens. Toujours pas de reponses?

Discussions similaires

  1. Impression sur imprimante réseau
    Par kinokkyo dans le forum Général VBA
    Réponses: 2
    Dernier message: 07/05/2007, 13h41
  2. Réponses: 8
    Dernier message: 06/04/2007, 09h48
  3. Impression sur imprimante USB à partir d'un logiciel DOS
    Par el_aaroubi dans le forum Périphériques
    Réponses: 4
    Dernier message: 28/03/2007, 18h16
  4. Procédure pour impression sur imprimante matricielle
    Par snakers13 dans le forum WinDev
    Réponses: 2
    Dernier message: 15/10/2006, 17h55
  5. [CR][ASP.NET] Impression sur imprimante partagée
    Par Frusciante8 dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 27/01/2005, 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