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

Interfaces Graphiques en Java Discussion :

Impression en Java


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2012
    Messages
    15
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 15
    Par d�faut Impression en Java
    Bonjour! j'ai un soucis, je n'arrive pas � imprimer sur plusieurs page en java


    Code java : 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
    62
    63
    64
    65
    66
    67
    68
    69
    public class Impression {
        PrinterJob printer;
        public void printList(int selectedIndex){
     
     
     
            printer = PrinterJob.getPrinterJob();
     
           // printer.setPrintable(new Printer(option));
            printer.setPrintable(new Printer());
            printer.setJobName("liste des eleves ");
            if(!printer.printDialog()){
     
                return;
            }
            try{
                printer.setCopies(12);
                printer.print();
     
            }catch(Exception ex){
             System.out.println(ex.getMessage());
     
     
            }
        }
     
     
         public class Printer implements Printable {
     
     
     
              public Printer() {
     
     
            }
     
     
            @Override
            public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
                if(pageIndex > 0)
                    return (NO_SUCH_PAGE);
                Graphics2D g2d = (Graphics2D)graphics;
                Font titleF = new Font("Goudy Old Style", Font.BOLD, 17);
                Font valueF = new Font("Goudy Old Style", Font.PLAIN, 14);
                Color Blue = new Color(26,175,228);
                //ImageIcon icon = new ImageIcon(getClass().getResource("/images/logo_uds.JPG"));
                g2d.rotate(-Math.PI/24);
                g2d.drawImage(icon.getImage(), 3, 15, null);
                g2d.rotate(Math.PI/24);
                GradientPaint gp = new GradientPaint(150, 100, Blue, 70, 70, Color.LIGHT_GRAY);
                g2d.setPaint(gp);
                g2d.setFont(new Font("Goudy Old Style", Font.PLAIN, 36));
                g2d.drawString("LYCEE TECHNIQUE DE GALIM", 50, 50);
                g2d.setFont(titleF);
     
                g2d.drawString(" Liste Des Eleves de la    "+infoClassSelected, 10, 150);
                g2d.drawString("Année scolaire:", 10, 175);
                g2d.drawString("Enseignants :", 10, 200);
                g2d.setColor(Color.BLACK);
                g2d.setFont(valueF);
     
                jtable.print(g2d) //mon tableur qui contient plus de 60 lignes 
     
     
                return PAGE_EXISTS;
            }
        }
     
         }

    voici ma question. quand j'imprime, �a imprime seulementune partie de mon jtable je pense que quand la feuille est plaine , le reste n'est plus imprimer, comment faire de maniere quand la page fini que �a continu dans la page suivante?
    s'il vous plait aidez moi

  2. #2
    Mod�rateur
    Avatar de joel.drigo
    Homme Profil pro
    Ing�nieur R&D - D�veloppeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 56
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur R&D - D�veloppeur Java
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par d�faut
    Salut,

    Le param�tre pageIndex de la m�thode print() sert � imprimer plusieurs pages. La m�thode print() est rappel�e avec un pageIndex incr�ment� � chaque fois que l'appel pr�c�dent a retourn� PAGE_EXISTS. Lorsque la m�thode est appel�e avec un pageIndex sup�rieur au nombre de pages � imprimer, on retourne tout de suite NO_SUCH_PAGE. Ou dit autrement, tant que la m�thode print() retourne PAGE_EXISTS, la m�thode sera r�appel�e avec un pageIndex incr�ment� de 1.

    Une mani�re simple de g�rer �a est
    • de d�terminer la taille de ce qui doit �tre imprim�, et de le diviser en rectangles, correspondant � des pages (avec pageFormat)
    • de d�terminer la zone de ce qui a d�j� �t� imprim�, soit un assemblage (union) de rectangles, avec pageIndex
    • de d�terminer si tout a �t� imprim� ou pas
      • de retourner NO_SUCH_PAGE si on a d�j� tout imprim�
      • de faire une translation (vers la gauche et le haut) correspondant � la position du rectangle correspondant � la page d'index pageIndex (avec la m�thode translate de Graphics), et tout redessiner, et de retourner PAGE_EXISTS.


    Apr�s tu pourras �ventuellement optimiser l'impression :
    • au lieu d'afficher tout � chaque appel de print(), ne dessiner que ce qui est en intersection avec le rectangle de la page en cours d'impression ;
    • de d�terminer la taille de ce qui doit �tre imprim� lorsque pageIndex vaut 0, et de le m�moriser pour les appels suivants (dans une variable de classe) ;


    �ventuellement, ajouter du clipping pour �viter du recouvrement aux marges et pour g�rer les marges.
    L'expression "�a marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le probl�me.
    La plupart des r�ponses � vos questions sont d�j� dans les FAQs ou les Tutoriels, ou peut-�tre dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement pos�e et r�dig�e et vous aurez plus de chances de r�ponses adapt�es et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'�diteur de messages).
    Nouveau sur le forum ? Consultez Les R�gles du Club.

  3. #3
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2012
    Messages
    15
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 15
    Par d�faut
    Salut! merci pour ta r�ponse,mon probl�me est que j'ai mes donn� dans une JTable mais comment diviser en rectangle comme vous le dite?

  4. #4
    Mod�rateur
    Avatar de joel.drigo
    Homme Profil pro
    Ing�nieur R&D - D�veloppeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 56
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur R&D - D�veloppeur Java
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par d�faut
    Si tu veux que la jtable soit correctement r�partie entre plusieurs pages (sans que les colonnes soit � cheval entre plusieurs pages, par exemple), il faut plut�t proc�der comme indiqu� ici. Sinon, il te faut g�rer toi-m�me le layout, en parcourant lignes et colonnes, en d�terminant les dimensions, et leurs positions, en d�duire leur r�partition sur les diff�rentes pages, ce qui te permettra de connaitre le nombre de pages n�cessaires pour l'imprimer, etc, en gros ce que font les m�thodes utilis�es dans le tutoriel d'Oracle.
    Si tu souhaites juste l'imprimer comme un rectangle, sans se pr�occuper du fait que les colonnes et lignes soient coup�es, il suffit de d�couper le rectangle correspondant aux bounds de la jtable en rectangles.
    L'expression "�a marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le probl�me.
    La plupart des r�ponses � vos questions sont d�j� dans les FAQs ou les Tutoriels, ou peut-�tre dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement pos�e et r�dig�e et vous aurez plus de chances de r�ponses adapt�es et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'�diteur de messages).
    Nouveau sur le forum ? Consultez Les R�gles du Club.

  5. #5
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2012
    Messages
    15
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 15
    Par d�faut
    s'il vous plait je ne suis pas tres fort en java. un exemple de code pouvait bien m'aider .merci

  6. #6
    Mod�rateur
    Avatar de joel.drigo
    Homme Profil pro
    Ing�nieur R&D - D�veloppeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 56
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur R&D - D�veloppeur Java
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par d�faut
    D�couper un rectangle en rectangle n'est pas un probl�me java, mais si ta ma�trise de ce langage est limit�e, je te conseille alors de suivre la m�thode standard plut�t que de faire ta propre impression.

    La m�thode standard est bien d�crite avec des exemples de code sur le tutoriel oracle dont je t'ai donn� le lien. Peut-�tre le fait que les liens ne soient pas rendus dans un style diff�rent du reste du texte t'a emp�ch� de le voir. Je te le redonne donc : How to Print Tables.
    L'expression "�a marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le probl�me.
    La plupart des r�ponses � vos questions sont d�j� dans les FAQs ou les Tutoriels, ou peut-�tre dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement pos�e et r�dig�e et vous aurez plus de chances de r�ponses adapt�es et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'�diteur de messages).
    Nouveau sur le forum ? Consultez Les R�gles du Club.

  7. #7
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2012
    Messages
    15
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 15
    Par d�faut
    Bonjour ! en fait j'ai envie d'imprimer un relev� de note sur lequel j'aurai un entete (comme ceci: r�publique du Cameroun, Ministre des enseignements secondaire,Lyc�e technique de Galim,liste des el�ves de la classe de terminale,relev� de note) je ne sais pas comment ins�rer d'abord cet entete avent de tel maniere qu'en faisant un simple print sur ma table tous soit imprimer

  8. #8
    Mod�rateur
    Avatar de joel.drigo
    Homme Profil pro
    Ing�nieur R&D - D�veloppeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 56
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur R&D - D�veloppeur Java
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par d�faut
    Bonjour,

    Regardes l'exemple TablePrintDemo3 dans le tutoriel dont je t'ai donn� le lien : dans cet exemple, on affiche des images autour de la JTable. Dans ton cas, � la place des images autour, c'est un texte au dessus, mais ce n'est pas tr�s diff�rent. �ventuellement il te faut d�terminer l'espacement pris par ton ent�te, ce que tu peux faire en r�cup�rant l'instance de FontMetrics sur le contexte graphique de ton impression (l'objet de classe Graphics pass� en param�tre de la m�thode print) et en appelant ensuite la m�thode getStringBounds(), apr�s avoir affect� la police : comme tu connais les coordonn�es x et y du dernier texte que tu affiches (dernier drawString), tu peux en d�duire la hauteur compl�te que prend ton ent�te (dans l'exemple TablePrintDemo3, en ajoutant �ventuellement une petite marge pour pas que la JTable soit coll�e au texte. Tu verras que l'impression proprement d�te de la JTable est faite par d�l�gation en passant un format de papier modifi�, r�duit justement pour ne couvrir que la partie du papier qui n'est pas couverte par une ent�te, pied de page, marges, etc...).
    L'expression "�a marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le probl�me.
    La plupart des r�ponses � vos questions sont d�j� dans les FAQs ou les Tutoriels, ou peut-�tre dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement pos�e et r�dig�e et vous aurez plus de chances de r�ponses adapt�es et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'�diteur de messages).
    Nouveau sur le forum ? Consultez Les R�gles du Club.

  9. #9
    Membre exp�riment� Avatar de kalina
    Femme Profil pro
    D�veloppeur Java
    Inscrit en
    Avril 2009
    Messages
    220
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Alg�rie

    Informations professionnelles :
    Activit� : D�veloppeur Java

    Informations forums :
    Inscription : Avril 2009
    Messages : 220
    Par d�faut
    Bonjour,
    moi j'ai toujours utilis� ce bout de code pour imprimer mes jTables m�me s'il s'�talent sur plusieurs pages:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     MessageFormat header = new MessageFormat("MonEntête");
            MessageFormat footer = new MessageFormat("                          Page {0,number,integer}             ");
     
            try {
                jTable1.print(JTable.PrintMode.FIT_WIDTH, header,footer);
            } 
            catch (java.awt.print.PrinterException e) {
    		new Erreur("Cannot print %s%n "+ e.getMessage()).setVisible(true);
    		}
    le seule probl�me c'est qu'au jour d'aujourd'hui, je n'ai pas trouv� le moyen pour imprimer plus d'une ligne pour l'ent�te! et c'est vrai que c'est tr�s emb�tant.
    bon courage!

  10. #10
    Membre �clair�
    Homme Profil pro
    Ing�nieur de construction de r�seaux
    Inscrit en
    Ao�t 2012
    Messages
    406
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activit� : Ing�nieur de construction de r�seaux
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2012
    Messages : 406
    Par d�faut
    Pour ma part l'impression en java n�est pas tr�s fiable je pr�f�re utiliser des outil de g�n�ration des rapports pour tout ce qui est impression

  11. #11
    Mod�rateur
    Avatar de joel.drigo
    Homme Profil pro
    Ing�nieur R&D - D�veloppeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 56
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur R&D - D�veloppeur Java
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par d�faut
    En quoi l'impression java ne serait-elle pas fiable ? Elle a toujours tr�s bien fonctionn� : enfin, je n'ai jamais eu de probl�me, personnellement. �a peut demander du travail selon ce qu'on cherche � imprimer. Mais pas forc�ment plus qu'avec une api de reporting, surtout si c'est juste pour imprimer une JTable, et on peut s'aider d'API sp�cifiques parfois.

    A noter que les API pure java de reporting se base forc�ment sur l'impression java.
    L'expression "�a marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le probl�me.
    La plupart des r�ponses � vos questions sont d�j� dans les FAQs ou les Tutoriels, ou peut-�tre dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement pos�e et r�dig�e et vous aurez plus de chances de r�ponses adapt�es et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'�diteur de messages).
    Nouveau sur le forum ? Consultez Les R�gles du Club.

  12. #12
    Membre �clair�
    Homme Profil pro
    Ing�nieur de construction de r�seaux
    Inscrit en
    Ao�t 2012
    Messages
    406
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activit� : Ing�nieur de construction de r�seaux
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2012
    Messages : 406
    Par d�faut
    Citation Envoy� par joel.drigo Voir le message
    En quoi l'impression java ne serait-elle pas fiable ? Elle a toujours tr�s bien fonctionn� : enfin, je n'ai jamais eu de probl�me, personnellement. �a peut demander du travail selon ce qu'on cherche � imprimer. Mais pas forc�ment plus qu'avec une api de reporting, surtout si c'est juste pour imprimer une JTable, et on peut s'aider d'API sp�cifiques parfois.

    A noter que les API pure java de reporting se base forc�ment sur l'impression java.
    D�sol� j'ai donc du mal exprimer mes propos je voulais simplement dire qu'avec les outils de reporting c'est plus simple

Discussions similaires

  1. Impression en JAVA
    Par maverick56 dans le forum AWT/Swing
    R�ponses: 3
    Dernier message: 23/10/2007, 23h15
  2. Impression sous java
    Par nounowa dans le forum API standards et tierces
    R�ponses: 2
    Dernier message: 12/08/2007, 23h57
  3. impression sous java
    Par lauloune dans le forum Langage
    R�ponses: 1
    Dernier message: 18/01/2007, 15h49
  4. Pb d'impression en java
    Par souraf dans le forum AWT/Swing
    R�ponses: 3
    Dernier message: 28/06/2006, 15h22

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