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

 Java Discussion :

Impression d'une image


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 120
    Par défaut Impression d'une image
    Bonjour,

    J'ai un petit problème, je souhaite imprimer une image tout simplement mais le problème c'est que mon image n'est pas entière et je voudrais la placer dans le coin supérieur gauche du Panel...

    Voici le code :
    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
    public int print(Graphics graphics, PageFormat pageFormat, int page) throws PrinterException {
     
            int retValue = Printable.NO_SUCH_PAGE;
     
            if (page <= 0) {
                double xLeft = pageFormat.getImageableX();
                double yTop = pageFormat.getImageableY();
                double width = pageFormat.getImageableWidth();
                double height = pageFormat.getImageableHeight();
     
                System.out.println("xLeft : " + xLeft + " yTop : " + yTop + " width : " + width + " height : " + height);
     
                Graphics2D g2D = (Graphics2D) graphics;
                g2D.translate((int) xLeft, (int) yTop);
     
                Image img = Toolkit.getDefaultToolkit().getImage("out.jpg");
                g2D.drawImage(img, 0, 0, null);
     
                retValue = Printable.PAGE_EXISTS;
            }
            return retValue;
    J'utilise le PrinterJob etc... c'est juste pour le placement et la taille de l'image.. a savoir que le format papier est un format étiquette de 192*62.

    Merci.

  2. #2
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Je suis surpris que tu n'es pas de problèmes avec le Toolkit (qui ne retourne pas l'image elle-même mais un lien vers l'image à charger), perso je préférerais utiliser ImageIO (qui lui retourne réellement une image).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Image img = ImageIO.read("out.jpg");
    Concernant le positionnement de l'image, je te propose ça :
    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
    int imgWidth = img.getWidth();
    int imgHeight = img.getHeight();
     
    double wFactor = pageWidth / imgWidth;
    double hFactor =  pageHeight / imgHeight;
    if(wFactor < hFactor) {
    	imgWidth = (int)Math.round(imgWidth * wFactor);
    	imgHeight = (int)Math.round(imgHeight * wFactor);
    } else {
    	imgWidth = (int)Math.round(imgWidth * hFactor);
    	imgHeight = (int)Math.round(imgHeight * hFactor);
    }
     
    Graphics2D g2D = (Graphics2D) graphics;
    g2D.drawImage(img, (int)(xLeft + 0.5), (int)(yTop + 0.5), imgWidth, imgHeight, null);

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 120
    Par défaut
    C'est parfait!
    Merci beaucoup!!

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 120
    Par défaut
    En fait j'ai un petit soucis, c'est que l'image est vachement trop petite...

    Comment je pourrais faire pour quelle soit plus grande?

    Merci.

  5. #5
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Dans le code précédent, si je ne me suis pas trompé, l'image est mise à l'échelle pour être la plus grande possible dans l'espace disponible.
    La mise à l'échelle se fait via les facteurs wFactor et hFactor qu'il suffit de modifier pour obtenir un résultat différent .

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 120
    Par défaut
    Ok je vais donc essayer ça ^^ Merci

    Désolé du retard mais je n'ai pas eu le temps...

    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/01/2007, 19h31
  2. Impression d'une image pleine page
    Par Cyrilh7 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 07/11/2005, 09h18
  3. Enlever le boutton impression sur une image !
    Par Gab-Gab dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/11/2004, 23h30
  4. [BPW] Impression d'une image BMP
    Par Alcatîz dans le forum Turbo Pascal
    Réponses: 13
    Dernier message: 21/08/2003, 14h34

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