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

Graphisme Java Discussion :

impression sans page de configuration


Sujet :

Graphisme Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut impression sans page de configuration
    bonjour a tous.
    J'aimerai pouvoir imprimé le contenu d'un JEditorPane (du HTML) directement sur une imprimante de mon reseau.
    Je me sers d'une class printUtilities qu'on trouve sur le net, qui permet d'imprimer le contenu d'un element swing sans trop de probleme.
    J'arrive à selectionné tout seul (sans aucune fenetre) la bonne imprimante.
    J'arrive à imprimer le contenu (avec l'aide d'une fenetre de selection)
    mais je n'arrive pas à faire la meme chose en passant les arguments directement.
    voici mon 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
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    public void print() {
    try {
        PrinterJob printJob = PrinterJob.getPrinterJob();
        PrintService[] service=printJob.lookupPrintServices(); //liste des imprimantes connus
        printJob.setPrintable(this);
       boolean matchFound=false;
        int count=service.length;
        for(int i=0;i<count;i++){
           //on selectionne l'imprimante nomé copieur
     if((service[i].getName().indexOf("copieur")!=-1)||(service[i].getName().indexOf("COPIEUR")!=-1)){
                printJob.setPrintService(service[i]);
                i=count;
                matchFound=true;
     
            }
        }
            //si on trouve pas l'imprimante, alors on affiche une fenetre de choix
            if(!matchFound)
                printJob.printDialog();
     
    /*
    //le code ci dessous m'a permis de récupéré les largeurs et hauteurs du
    //papier et de l'element à imprimer. avec pageDialg() ca fonctionne sans
    //soucis
     
        PageFormat pp =printJob.pageDialog(printJob.defaultPage());
                System.out.println("iw :"+pp.getPaper().getImageableWidth()+
                        " ih:"+pp.getPaper().getImageableHeight()+
                        " h:"+pp.getPaper().getHeight()+
                        " w:"+pp.getPaper().getWidth() + " x:" +pp.getPaper().getImageableX()+
                        " y:"+pp.getPaper().getImageableY() + " or : " +pp.getOrientation()
                        );
    */
           //la meme chose mais en mettant les valeurs dans le code et la il imprime tout SAUF ce que je veux :(     
     
            PageFormat ppp = printJob.defaultPage();
     
            Paper pa = ppp.getPaper();
            pa.setImageableArea(28.346456692913385,28.346456692913385,538.5826771653543,785.1968503937007);
            ppp.setOrientation(0);
            pa.setSize(595.275590551181,841.8897637795276);
            ppp.setPaper(pa);
     
            printJob.setPrintable(this,ppp);
            printJob.print();
    //je verifie que mon pageFormat a bien les bonnes valeurs , c'est le cas,
    //pourtant SANS pageDialog çà ne fonctionne pas, alors qu'avec oui
     
                System.out.println("iw :"+ppp.getPaper().getImageableWidth()+
                        " ih:"+ppp.getPaper().getImageableHeight()+
                        " h:"+ppp.getPaper().getHeight()+
                        " w:"+ppp.getPaper().getWidth() + " x:" +ppp.getPaper().getImageableX()+
                        " y:"+ppp.getPaper().getImageableY() + " or : " +ppp.getOrientation()
                        );
     
          }
          catch (Exception pe) {
            System.out.println("Error printing: " + pe);
          }
      }
    j'ai deja imprimé près de 20 feuilles (recto verso) pour testé, et je commence à devenir fou là.
    Que fais la fonctione pageDialog() que ne fait pas mon code ?!?
    parce que mon tableau HTML ressort sans probleme avec pageDialog alors qu'il ressort en taille de DINGUE et coupé(genre police 50-60) sans pageDialog

    toute idée est bienvenue car moi j'en ai plus

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut
    personne n'a d'idée ?

    sinon au pire je serrai interessé à savoir comment imprimé un element Graphics2D

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut
    c'est bon j'ai trouvé, en fait l'erreur viens de la fonction print de printutilies (comme quoi meme si c'est trouvé sur le net et donné par quelqu'un que c'est loin d'etre parfait ! )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public int print(Graphics g, PageFormat pf, int pageIndex) {
        int response = NO_SUCH_PAGE;
        Graphics2D g2 = (Graphics2D) g;
        // for faster printing, turn off double buffering
        disableDoubleBuffering(componentToBePrinted);
        Dimension d = componentToBePrinted.getSize(); //l'erreur est ICI
    en effet mon JEditorPane est petit, mais l'HTML est plus gros, donc forcement en prenant getSize il prend betement la taille du JEditorPane. Alors que getPreferredSize prend la taille du contenu du JEditorPane et là plus d'erreur

    enfin bon c'est quand meme bizare qu'en appelant pageDialog cette erreur ne se fait pas ....

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

Discussions similaires

  1. Page de configuration d'impression dans TDBChart
    Par vg-matrix dans le forum Composants VCL
    Réponses: 0
    Dernier message: 26/09/2009, 18h42
  2. Impression sans entête et pied de page
    Par amadousoind dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/02/2008, 14h47
  3. impression sans entete ni pieds de page
    Par Phiss dans le forum ASP
    Réponses: 8
    Dernier message: 16/10/2007, 17h30
  4. Impression sans numero de page et url site
    Par miss_monika dans le forum Langage
    Réponses: 2
    Dernier message: 13/06/2007, 16h41
  5. [CR8.5]lancer plusieurs impressions sans utiliser l'ocx
    Par sboober dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 04/05/2005, 10h08

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