Bonjour !
je souhaite utiliser l'exellent outil "iText" pour éditer des pdf dans mon application javaEE.
grâce au livre "iText in action" et ses tutoriels, je m'initie petit à petit à cet outil.
MAIS :
Je n'arrive pas à récupérer le contenu de variables pour les intégrer dans mon pdf.
Encore une fois, un exemple vaut mieux qu'un long discours pour comprendre mon soucis.
Pour bien comprendre ma démarche :
1) dans mon fichier "web.xml" j'ai installé ceci :
2) déclaration de mes variables et code de mon application (partiel) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <servlet> <description/> <display-name>Billet</display-name> <servlet-name>Billet</servlet-name> <servlet-class>logic.IVenteCatalogManager</servlet-class> </servlet><servlet-mapping> <servlet-name>Billet</servlet-name> <url-pattern>/ivente/e-billet.pdf</url-pattern> </servlet-mapping>
il s'avère que le résultat dans l'affichage de mon pdf est soit "" soit null pour les variables "essai" et "demoDisplay"
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 @ManagedBean @SessionScoped public class IVenteCatalogManager extends HttpServlet implements Serializable { // pour le bouton demo private String demoText; String demoDisplay; Boolean demo; public String vendeur; public String InBox(String entree) { vendeur=entree; return ""; } public String OutBox() { String render = vendeur; return render; } ....... demoDisplay=" - Démonstration"; InBox(demoDisplay); ....... protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("application/pdf"); try { // step 1 Document document = new Document(); // step 2 PdfWriter.getInstance(document, response.getOutputStream()); // step 3 document.open(); // stap 4 //String essai=routines.OutBox(); String essai=this.OutBox(); document.add(new Paragraph("rezaBus")); document.add(new Paragraph(displayNomExploit)); document.add(new Paragraph(displayLibExploit)); document.add(new Paragraph(essai+" - "+demoDisplay)); document.add(new Paragraph(new Date().toString())); // step 5 document.close(); } catch (DocumentException de) { throw new IOException(de.getMessage()); } }
La seule manière d'arriver à un affichage du contenu des variables est de rajouter "static" en argument de déclaration de variable. Mais dans ce cas là avec "static", les différentes sessions des utilisateurs de mon applications se confondent, car les variables deviennent globales au niveau de l'application.
J'ai essayé d'autres arguments en suivant les multiples explications trouvé sur ce forum, mais cela ne change rien à cette situation.
Ce que je trouve curieux aussi, c'est que NetBeans ne signale pas d'erreur en écrivant le code, ce qui signifie que les variables sont bien reconnues, et pourtant, le contenu ne passe pas
Quelqu'un a-t-il une idée ?
Merci par avance !
Partager