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

Documents Java Discussion :

[iText] Manipulation des tables et insertion numero de page


Sujet :

Documents Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 46
    Points : 30
    Points
    30
    Par défaut [iText] Manipulation des tables et insertion numero de page
    Bonjour,

    je voudrais crée une table et inserer dans chaque cellule de cette table une autre table.

    J'utilise le code suivant mais il n'est vraiment pas satisfaisant

    PdfPTable tableGene = new PdfPTable(4);
    PdfPTable tableEtudiant = new PdfPTable(1);

    int j = 0;
    EtudiantVrs etudiant;

    while(j < lEtuImage.count()){
    etudiant = (EtudiantVrs) lEtuImage.objectAtIndex(j);
    tableEtudiant.addCell(etudiant.getLib_nom_pat_ind());
    tableEtudiant.addCell(etudiant.getLib_pr1_ind());

    tableGene.addCell(tableEtudiant);
    j++;
    }
    document.add(tableGene);
    en fait la table "tableEtudiant" se rempli completement et ensuite elle est insérer dans les cellule de la table "tableGene"

    comment est-ce que je peux faire pour pallier à ce probleme?

  2. #2
    Membre VIP

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 74
    Points : 104
    Points
    104
    Billets dans le blog
    2
    Par défaut
    Je ne comprends pas la question.
    En regardant la code, je vois quelques problèmes:

    Le contenu du tableEtudiant est cumulatif:
    pour j = 0, le table contient 1 étudiant,
    pour j = 1, le table contient 2 étudiants (le premier et le suivent),
    pour j = 2, le table contient 3 étudiands, etc...
    Est-ce nécessaire? Pourquoi faites-vous ceci?

    Un autre problème est que tableGene va manquer quelques étudiants
    si lEtuImage.count() n'est pas divisible par 4.

    Est-il possible de réorganizer la code un petit peu?
    Car maintenant je n'ai aucune idée de ce que vous essayez accomplir?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 46
    Points : 30
    Points
    30
    Par défaut
    Alors, j'ai modifier mon code en faisant une fonction qui insert dans la table tableEtudiant et ensuite j'appele cette fonction dans la boucle pour insérer dans la table tableGene

    PdfPTable tableGene = new PdfPTable(4);

    int j = 0;
    EtudiantVrsEtape etudiant;

    while(j < lEtuImage.count()){
    table.addCell(rempliTable(j));
    j++;
    }
    document.add(table);
    document.close();
    } catch (DocumentException de) {
    System.err.println(de.getMessage());
    } catch (IOException ioe) {
    System.err.println(ioe.getMessage());
    }

    document.close();
    }


    public PdfPTable rempliTable(int i){
    PdfPTable tableEtudiant = new PdfPTable(1);
    EtudiantVrsEtape etudiant;
    etudiant = (EtudiantVrsEtape) lEtuImage.objectAtIndex(i);

    tableEtudiant.addCell(etudiant.getLib_nom_pat_ind);
    tableEtudiant.addCell(etudiant.getLib_pr1_ind);
    return tableEtudiant;
    }
    mais comme tu le dis, j'ai un probleme avec le nombre d'etudiants, as-tu une idée pour que tous mes etudians se trouve dans la table même si le nombre de mes etudiants dans la liste n'est pas divisible par 4

  4. #4
    Membre VIP

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 74
    Points : 104
    Points
    104
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par etoileDesNeiges
    as-tu une idée pour que tous mes etudians se trouve dans la table même si le nombre de mes etudiants dans la liste n'est pas divisible par 4
    Ajoutez des cellulles vides jusqu'à ce que le PdfPRow est rempli. (Je ne sais pas le mot français pour 'row').

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 46
    Points : 30
    Points
    30
    Par défaut
    je crois que c'est ligne

    je vais essayer de remplir avec des cellules vide, enfin une fois que j'aurai bien compris comment ça marche...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 46
    Points : 30
    Points
    30
    Par défaut
    le probleme concernant la longueur de la table est résolu par contre maintenant je me casse la tête pour essayer d'insérer les numeros des pages en bas de page (à droite de preference)

    j'utilise "HeaderFooter" pour les en-tête, mais par contre pour les pieds de pages je voudrais avoir quelque chose du genre "2/10" avec 2 le numero de la page courante et 10 le nombre de page total...

    Si vous avez des idées elles sont les bienvenues

  7. #7
    Membre VIP

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 74
    Points : 104
    Points
    104
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par etoileDesNeiges
    j'utilise "HeaderFooter" pour les en-tête, mais par contre pour les pieds de pages je voudrais avoir quelque chose du genre "2/10" avec 2 le numero de la page courante et 10 le nombre de page total...
    HeaderFooter n'est plus recommendé.
    Le livre explique qu'il faut utiliser des 'page events'.
    Essayez l'example 'Page X of Y':
    http://itextdocs.lowagie.com/tutoria....html#examples

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 46
    Points : 30
    Points
    30
    Par défaut
    J'ai utilisé l'exemple et ça marche parfaitement...

    Une autre petite question, ma table n'est pas centrée verticalement sur les pages, y'a t-il moyen de les centré verticalement? (pour le centrage horizontale il y a la methode setHorizontalAlignment mais je n'ai pas trouver de methode similaire pour l'allignement vertical)

  9. #9
    Membre VIP

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 74
    Points : 104
    Points
    104
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par etoileDesNeiges
    J'ai utilisé l'exemple et ça marche parfaitement...

    Une autre petite question, ma table n'est pas centrée verticalement sur les pages, y'a t-il moyen de les centré verticalement? (pour le centrage horizontale il y a la methode setHorizontalAlignment mais je n'ai pas trouver de methode similaire pour l'allignement vertical)
    Fixez les dimensions du PdfPTable (setTotalWidth/setLockedWidth(true)).
    Comme ça c'est possible de calculer la hauteur du table: getTotalHeight().
    Une fois que vous connaissez la hauteur du table et la hauteur de la page,
    c'est facile de calculer le 'offset'.

    Ajoutez le table avec writeSelectedRows ou avec ColumnText.

Discussions similaires

  1. Conseil: manipulation des tables intermédiaires
    Par aiss57 dans le forum Requêtes
    Réponses: 1
    Dernier message: 29/04/2009, 10h55
  2. [SQL] Manipulation des tables systèmes
    Par Nzs26 dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/04/2009, 15h21
  3. Manipulation des tables avec displaytag (decorator)
    Par ismas dans le forum Struts 1
    Réponses: 1
    Dernier message: 27/05/2008, 04h15
  4. Manipulation des tables avec eclipse 3.3
    Par Spont dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 19/10/2007, 12h29
  5. Astuce pour la manipulation des tables
    Par kaouane dans le forum Bases de données
    Réponses: 3
    Dernier message: 27/05/2006, 12h29

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