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 :

[IText]Erreur à la concaténation de certains pdf seulement


Sujet :

Documents Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 [IText]Erreur à la concaténation de certains pdf seulement
    J'utilise le code de concaténation du site officiel avec la lib itext en version 1.1.
    http://itext.ugent.be/library/com/lo...ncatenate.java
    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
    public void writeOutput(OutputStream output) throws IOException
        {
            try {
                int pageOffset = 0;
                ArrayList master = new ArrayList();
                int f = 0;
                Document document = null;
                PdfCopy  writer = null;
                while (f < pdfList.size())
                {
                    // we create a reader for a certain document
                    PdfReader reader = new PdfReader((byte[])pdfList.get(f)); //ligne déclanchant l'exception
                    reader.consolidateNamedDestinations();
                    // we retrieve the total number of pages
                    int n = reader.getNumberOfPages();
                    List bookmarks = SimpleBookmark.getBookmark(reader);
                    if (bookmarks != null)
                    {
                        if (pageOffset != 0)
                            SimpleBookmark.shiftPageNumbers(bookmarks, pageOffset, null);
                        master.addAll(bookmarks);
                    }
                    pageOffset += n;
                    
                    if (f == 0)
                    {
                        // step 1: creation of a document-object
                        document = new Document(reader.getPageSizeWithRotation(1));
                        // step 2: we create a writer that listens to the document
                        writer = new PdfCopy(document, output);
                        // step 3: we open the document
                        document.open();
                    }
                    // step 4: we add content
                    PdfImportedPage page;
                    for (int i = 0; i < n; ) {
                        ++i;
                        page = writer.getImportedPage(reader, i);
                        writer.addPage(page);
                    }
                    PRAcroForm form = reader.getAcroForm();
                    if (form != null)
                        writer.copyAcroForm(reader);
                    f++;
                }
                if (!master.isEmpty())
                    writer.setOutlines(master);
                // step 5: we close the document
                document.close();
            }
            catch(Exception e) {
                e.printStackTrace();
            }
        }
    J'obtiens pour certain pdf cette exception:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    java.io.IOException: Rebuild failed: trailer not found.; Original message: xref subsection not found at file pointer 8292
    	at com.lowagie.text.pdf.PdfReader.readPdf(Unknown Source)
    	at com.lowagie.text.pdf.PdfReader.<init>(Unknown Source)
    	at com.lowagie.text.pdf.PdfReader.<init>(Unknown Source)
    J'essaierai avec les versions supérieurs de itext plus tard, mais mon architecture actuelle (cocoon) utilise le 1.1.

    Je précise que j'aurais bien mis les pdf posant problème en piece jointe, mais hélas, ils contiennent des info confidentielles.

  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
    Ok, voila les pdf (dont j'ai crypté les info) qui posent problèmes.
    Images attachées Images attachées

  3. #3
    Membre averti
    Inscrit en
    Février 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 18
    Par défaut
    Les PDFs sont endomagé. Tu peux les ouvrir avec Acrobat (pas le Reader) est il y aura une message d'erreur.

    Paulo

  4. #4
    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
    Acrobat reader arrive à les lire sans message d'erreur, j'ai pas le pro.
    Mais en effet, ils semblent pas completement conforme à la norme, d'autre logiciels ont quelques soucis.
    C'est embettant, c'est un outils assez cher qui les génere .

    Question subsidiaire:
    Quelqu'un aurait une méthode pour concaténer des pdf, en n'ayant qu'un pdf en mémoire à la fois en lecture?

  5. #5
    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
    Erf ça marche avec la version 1.3.6 de iText .
    J'ai fait faire des test sur acrobat pro 7 et pdfbox sans retour d'erreur non plus.
    Donc finalement le format de pdf est peut être pas si mauvais.

    Je suis toujours intéressé par une méthode permettant de concaténer des pdf sans les mettre tous en mémoire, j'en ai plus de 7000.

  6. #6
    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
    Up.

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

Discussions similaires

  1. [TortoiseSVN] Erreur de commit sur certains dossiers seulement
    Par loukoum82 dans le forum Subversion
    Réponses: 2
    Dernier message: 24/02/2012, 11h16
  2. [Crystal Report]Exportation en pdf seulement ?
    Par Sonny dans le forum Windows Forms
    Réponses: 2
    Dernier message: 08/02/2006, 13h48
  3. [Oracle] Erreur ORA-00900 suite à certaines requêtes
    Par osmoze dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 13/01/2006, 17h43
  4. [iText] Rajouter une image dans un pdf
    Par COCOLOLO dans le forum Documents
    Réponses: 2
    Dernier message: 06/04/2005, 17h01
  5. [iText] Conseils sur la génération de pdf
    Par GreenJay dans le forum Documents
    Réponses: 6
    Dernier message: 25/03/2005, 01h49

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