Bonjour,
pour réaliser des traitements sur des fichiers pdf, j'utilise l'API iText.
Voici mon cas d'utilisation :
via mon appli web, je génère plusieurs documents pdf.
Afin de faciliter l'impression de ceci par le poste client, je veux concaténer tous mes fichiers pdf vers 1 seul.
On peut me dire :
réponse : suivant le mode génération des fichiers pdf, ceci être peuvent envoyés individuellement par email, donc je suis obligé de les générer individuellement puis de les concaténer de plusieurs -> 1.Pourquoi ne pas générer directement tous dans un seul 1 fichier ?
Alors, en fouillant sur les tutos de iText, j'ai trouvé un bout de code qui me permet de faire cela.
Je l'ai adapté à mon contexte :
Lors de l'exécution de ce bout code -> aucune erreur
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 // crée un seul fic pdf pour l'impression et la visualisation Iterator<String> it = listFicLocal.iterator(); String outFile = destPath + "/" + demande.getId() + ".pdf"; listFicRemote.add(destPathRemote + "/" + demande.getId() + ".pdf"); try { this.document = new Document(PageSize.A4); this.pdfCopy = new PdfCopy(document, new FileOutputStream(outFile)); this.document.open(); while(it.hasNext()) { String sNom = it.next(); this.pdfReader = new PdfReader(sNom); for(int i = 1; i <= this.pdfReader.getNumberOfPages(); i++) { this.pdfPage = this.pdfCopy.getImportedPage(this.pdfReader, i); this.pdfCopy.addPage(this.pdfPage); this.pdfPage.closePath(); this.pdfPage = null; } this.pdfReader.close(); this.pdfReader = null; } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if(this.document != null) this.document.close(); this.document = null; if(this.pdfCopy != null) this.pdfCopy.close(); this.pdfCopy = null; if(this.pdfReader != null) this.pdfReader.close(); this.pdfReader = null; }
Par contre, le résultat, n'est pas celui que j'attends en partie :
- il me crée bien un nouveau doc pdf de plusieurs -> 1
- par contre, les fichiers pdf sources contiennent des informations que j'ai fixé précédemment mais que je ne retrouve pas dans le doc pdf concaténé sauf pour la première page.
Ma première page est remplie correctement, les autres ne contiennent que mon template vide
Est-ce que quelqu'un aurait unede pourquoi ou alors connait une façon de faire
d'avance
![]()
Partager