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

AWT/Swing Java Discussion :

Probleme d'impression d'un BufferedImage


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 8
    Par défaut Probleme d'impression d'un BufferedImage
    Bonjour,
    Je souhaite depuis un moment imprimer tout le contenu d'un JDialog et n'arrivant pas à le faire directement (problème de Cast de Graphics -> Graphics2D), j'ai essayé de la faire en passer par une image.
    J'utilise donc le code suivant

    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
            BufferedImage image = new BufferedImage(this.getWidth(), this.getHeight(),
                    BufferedImage.TYPE_INT_RGB);
            Properties props = new Properties();
     
            props.put("awt.print.paperSize", "a4");
           props.put("awt.print.destination", "printer");
     
     
            PrintJob pJob = getToolkit().getPrintJob(mainframe,
        			  "Printing_Test", props);
            Graphics g2 = pJob.getGraphics();
            this.paint(g2);
     
            	g2.drawImage(image,0,0,null);
                g2.dispose();
    Ce code semble fonctionner sauf que lorsque que je veut l'imprimer en pdf (grace a pdf995), un rectangle noire cache une grosse partie du document.
    J'arrive à voire le document 2s à l'ouverture mais ensuite le rectangle noire aparait et cache tout.
    Si quelqu'un à déja eu ce problème ou a une idée je l'en remercie.

    Merci

  2. #2
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Bonjour,

    quelqu'un a déjà eu un problème similaire. Cette discussion répond-elle à tes besoins ?
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 8
    Par défaut
    Je te remercie pour ta réponse. J'ai essayé en utilisant la méthode décrite, cela m'enlève effectivement l'erreur que j'avait. Par contre lors de l'impression, j'ai certaine partie de mon graphique qui reste en noir (rectangle noire à la place du graphique). Voici le code de ce qui reste en noire:
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
        void drawScale(Graphics2D g)
        {
            Rectangle r = this.getBounds();
            r.x = 0;
            r.y = 0;
     
            AffineTransform tx = g.getTransform();
     
            g.setColor(Color.BLACK);
     
            // Draw the y axis
            g.drawLine(r.x + leftOffset, r.y + topOffset, r.x+ leftOffset, r.y + r.height - bottomOffset);
     
            for (int i = 0; i < 13; i++)
            {
                float yoffset = r.y + (r.height - bottomOffset) - (float)(r.height-verticalOffset)*( (float) i/12);
     
                g.drawString(10*i+"%", r.x, (int) yoffset + 5);
                g.drawLine(r.x + leftOffset - 3, (int) yoffset, r.x + leftOffset + 3, (int) yoffset);
            }
     
            // Draw the x axis
            g.drawLine(r.x + leftOffset, r.y + r.height - bottomOffset, r.x + r.width - rightOffset, r.y + r.height - bottomOffset);
     
            // draw a few dates
            for (int i = 0; i < 24; i++)
            {
                float xratio = (float) i / 24;
                float xoffsetf =  leftOffset + (r.width - horizontalOffset) * xratio;
                int xoffset = (int) xoffsetf;
     
                Date currDate = new Date(1000*(startDrawTime + i*(endDrawTime - startDrawTime)/24));
     
                if (i % 6 == 0)
                {
     
                String  startDateString = currDate.getHours()+"h" + currDate.getMinutes();
     
                g.drawString(startDateString,r.x + xoffset  + 4, r.y + r.height - 15);
     
                startDateString = currDate.getDate()+"/"+
                              (currDate.getMonth()+1)+"/"+
                              (currDate.getYear()+1900) ;
     
                g.drawString(startDateString,r.x + xoffset +4, r.y + r.height - 5);
     
                }
            }
     
     
        }
    Ce code est apelé dans ma méthode paint() et permet d'afficher les axes et l'échelle de mon graphique.
    Je ne comprend pas pourquoi c'est la seul partie qui reste en noire lors de l'impression. Si quelqu'un à une idée

    Merci

Discussions similaires

  1. [VB]probléme d'impression en VB
    Par jolicoeur-3 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 15/10/2005, 21h30
  2. Probleme d'impression
    Par Kotik dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 06/10/2005, 10h37
  3. Problème d'impression avec CUPS
    Par piff62 dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 14/02/2005, 11h46
  4. [TP]problème d'impression en turbopascal
    Par matusa96 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 14/02/2004, 17h17
  5. Probleme d'impression avec la méthode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/07/2002, 14h26

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