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 :

concatenation de fichier pdf plusieurs -> 1


Sujet :

Documents Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de CaptainCyd
    Inscrit en
    Avril 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Avril 2007
    Messages : 201
    Par défaut 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 :
    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 : 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;	
    			}
    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 de pourquoi ou alors connait une façon de faire

    d'avance

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Par défaut
    C'est sans doute parce qu'il y a des acroform dans tes fichiers PDF et PdfCopy ne le gère pas bien. Regarde là : http://itextdocs.lowagie.com/tutoria...tamp/index.php il faut utiliser PdfCopyFields apparemment.

  3. #3
    Membre expérimenté Avatar de CaptainCyd
    Inscrit en
    Avril 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Avril 2007
    Messages : 201
    Par défaut


    Merci pour ton aide

    En effet, c'était cela mon pb, alors j'ai pris ce bout de code :
    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
     
    Iterator<String> it = listFicLocal.iterator();
    			String outFile = destPath + "/" + demande.getId() + ".pdf";
    			listFicRemote.add(destPathRemote + "/" + demande.getId() + ".pdf");
    			try {
     
    				PdfCopyFields copy = new PdfCopyFields(new FileOutputStream(outFile));
    				while (it.hasNext()) 
    				{
    					PdfReader reader = new PdfReader(it.next());
    					copy.addDocument(reader);
    					reader.close();
    				}
    				copy.close();
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    et il me concatène bien mes fichiers de plusieurs -> 1 avec tout dedans

    Encore merci pour ton aide

  4. #4
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2007
    Messages : 59
    Par défaut
    Salut,

    Je voulais savoir que faut-il inclure pour utiliser "FileOutputStream".
    En java, c'est java.io, mais je travail en c#.
    Je cherche egalement a creer un pdf a partir de plusieurs autre pdf.

    Merci d'avance

  5. #5
    Membre expérimenté Avatar de CaptainCyd
    Inscrit en
    Avril 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Avril 2007
    Messages : 201
    Par défaut


    en c#, c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    using System.IO;
    using System;
    Par contre, je ne suis pas sur que tu trouve directement FileOutputStream, il faut que tu trouve l'équivalent en c#.
    Jette un oeil à la faq

    Je cherche egalement a creer un pdf a partir de plusieurs autre pdf.
    Si c'est de la concaténation, regarde dans ce topic, c'est expliqué
    Si maintenant, ce n'est pas cela, explique plus clairement ce que tu veux faire

  6. #6
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2007
    Messages : 59
    Par défaut
    Voila, en fait maintenant j'arrive bien a creer mon pdf a partir de la fonction PdfCopyFields qui reunit 2, 3, .... de mes pdfs. Le probleme que j'ai est que j'aimerais bien avoir les donnees de mes pdfs sur une seule page et non sur plusieurs pages differentes. Car chacun de mes pdfs ne contient pas bcp de donnees, seulement quelques lignes et donc par consequent j'aimerais que mes textes soit consecutifs.
    Auriez-vous une solution?

    Merci bcp d'avance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Concatener des fichiers PDF
    Par Z3 dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 19/09/2008, 19h26
  2. [FPDF] Afficher plusieurs tableaux dans un fichier PDF
    Par Pakman80 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 30/07/2007, 15h19
  3. Concaténer plusieurs fichier pdf.
    Par gege2061 dans le forum Linux
    Réponses: 7
    Dernier message: 28/10/2006, 13h14
  4. Réunir plusieurs fichiers pdf
    Par nancy54 dans le forum Delphi
    Réponses: 5
    Dernier message: 14/06/2006, 17h50
  5. [HTML] Ouvrir plusieurs fichiers pdf dans une page
    Par PrinceMaster77 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 05/05/2006, 09h34

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