concatenation de fichier pdf plusieurs -> 1
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 :
Citation:
Pourquoi ne pas générer directement tous dans un seul 1 fichier ?
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.
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 :
Code:
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;
} |
Lors de l'exécution de ce bout code -> aucune erreur
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 une :idea: de pourquoi ou alors connait une façon de faire :question:
:merci: d'avance :king: