Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1694 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  iText : page events & variables globales

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

iText : page events & variables globales

n°1174397
fifou38
Posté le 11-08-2005 à 11:02:31  profilanswer
 

Salut à tous,
pour ceux qui utilisent iText (et pour les autres),
voila j'utilise la librairie iText pour générer des documents pdf,  
je construits entre autres des headers / footers qui sont construits dans la méthode onEndPage qui est déclenchée à chaque fin de page, pour les construire j'ai besoin de variables qui sont initalisées dans ma méthode principale qui construit le document (à partir d'une requete assez lourde que je veux pas répéter),
c'est simple me direz-vous : declarer une variable globale, l'initialiser dans la méthode principale et l'utiliser dans la méthode on endpage.
Seulement voila gros problème les méthodes déclenchées "onEventPage" ne partagent pas des variables globales avec les autres méthodes (j'ai testé et retesté), elles ne partagent des variables qu'entre elles...
 
Une idée qui m'empecherait de faire 2 fois la meme requete ??
 
merci d'avoir lu jusqu'a la fin ;-)

mood
Publicité
Posté le 11-08-2005 à 11:02:31  profilanswer
 

n°1174723
souk
Tourist
Posté le 11-08-2005 à 16:43:56  profilanswer
 

tu peux utiliser un PdfPageEventHelper :
 

Code :
  1. import com.lowagie.text.Document;
  2. import com.lowagie.text.pdf.PdfPageEventHelper;
  3. import com.lowagie.text.pdf.PdfWriter;
  4. public class MonEventHelper extends PdfPageEventHelper {
  5.     private <type1> parametre1;
  6.     private <type2> parametre2;
  7.    ...
  8.     public MonEventHelper(<type1> parametre1, <type2> parametre2) {
  9.         this.parametre1 = parametre1;
  10.         etc....
  11.     }
  12.     public void onStartPage(PdfWriter pdfWriter, Document document) {
  13.          //tu fais ce que tu veux ici
  14.     }
  15.     public void onEndPage(PdfWriter pdfWriter, Document document) {
  16.          //tu fais ce que tu veux ici
  17.     }


 
et dans le reste de ton code, tu files le helper au PdfWriter:

Code :
  1. pdfWriter.setPageEvent(new MonEventHelper(parametre1, parametre2));


 
ca suffit pas comme ca ?


Message édité par souk le 11-08-2005 à 16:44:28
n°1174726
the real m​oins moins
Posté le 11-08-2005 à 16:46:11  profilanswer
 

enfin, en étendant l'helper ou pas, l'idée est la même, non? j'ai pas bien vu ou était le problème [:petrus75]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1174730
souk
Tourist
Posté le 11-08-2005 à 16:48:21  profilanswer
 

chaipa, je vais relire son post pour voir [:pingouino]
 

n°1174733
souk
Tourist
Posté le 11-08-2005 à 16:50:00  profilanswer
 

the real moins moins a écrit :

enfin, en étendant l'helper ou pas, l'idée est la même, non? j'ai pas bien vu ou était le problème [:petrus75]


 
quelle idée est la même que quoi au fait ? [:dawa]  

n°1174832
the real m​oins moins
Posté le 11-08-2005 à 18:18:10  profilanswer
 

ben euh, encapsuler ses variables dans son listener quoi, plutot que d'esperer qu'elles soient "là" par magie :??:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1174845
souk
Tourist
Posté le 11-08-2005 à 18:40:41  profilanswer
 

ah oui [:pingouino] c'est clairement la même idée [:joce]

n°1935117
existanz
Posté le 24-10-2009 à 16:50:24  profilanswer
 

Bonjour,
 
J'ai le même soucis que fifou38:
J'ai un objet qui construit un PDF a partir d'informations diverses.
Pour accéder aux fonctionnalités des Header/footer j'ai du rajouter faire étendre PdfPageEventHelper() à mon objet (extends PdfPageEventHelper()).
Le hic c'est que depuis les méthodes on_XXX() du listener qui sont surchargées, on arrive pas a accéder aux valeurs des variables globales de l'objet qui étends le listener...  
 
@souk=>Non ca suffit pas...

Code :
  1. public void onStartPage(PdfWriter pdfWriter, Document document) {
  2. #          //tu fais ce que tu veux ici
  3. #          // ====>>>> NON !
  4. #     }


Car dans cette methode on ne voit pas les variables globales parametre1 et parametre2.... ou plus exatement ce ne sont pas celles du meme objet: elles sont donc nulles.
Il doit y avoir un walkaround, mais je le connais pas. Si kelk'un a l'idée,
Merci d'avance,
eXz


Message édité par existanz le 25-10-2009 à 08:42:39
n°1935202
existanz
Posté le 25-10-2009 à 08:46:34  profilanswer
 

J'ai trouvé un truc...
Cela vient de l'initialisation du PdfWriter. Je faisais de la façon suivante:

PdfWriter catalogWriter = PdfWriter.getInstance(pdfCatalog, new FileOutputStream(CATALOGUE+"_"+cptDoc+".pdf" ));
catalogWriter.setPageEvent(new PdfCatalogCreator()) ;


Mon PdfCatalogCreator ne connaissait plus rien... évidement.
 
 
Comme l'indique souk, il faut passer les paramètres au nouvel objet crée et ecrire:

catalogWriter.setPageEvent(new PdfCatalogCreator(<Type> param1...)) ;


Et dans le constructeur les reaffecter...
 
eXz


Message édité par existanz le 25-10-2009 à 08:50:05

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  iText : page events & variables globales

 

Sujets relatifs
Problème pour parser une page web au niveau de fgets().Problème de variables
Petit éclaircicement sur les variables de session & COscript vbs dans page php
Problème de mise en page css html IE/firefoxAjout Musiqsur page web en arriere plan
Page précédente au bout de 5 secFonction login pour éditer la page d'un site ?
[resolu] ouvrir une page htmltransformer nom de variables
Plus de sujets relatifs à : iText : page events & variables globales


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR