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

Java Discussion :

Splitter des documents PDF avec iText


Sujet :

Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Splitter des documents PDF avec iText
    Bonjour,

    J'aurai voulu savoir si quelqu'un avait réussi à splitter un document PDF avec iText. En faisant l'hypothèse qu'on connait l'index de commencement d'un fragment et sa longueur.
    Je pense qu'on peut toujours utiliser des FileOutputStream et FileInputStream avec des Buffers par ci par là pour le faire. Mais j'aurai voulu savoir s'il y avait une alternative fiable avec iText (sans de grosses pertes de performances mais je pense un code un peu plus clair qu'avec les classes Java).
    Merci!

    Amir

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Oui, tu peux spliter des docs avec iText.
    De mémoire, il y a même un tuto qui explique comment le faire sur le site.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Mon principal problème est le fait que les exemples du tuto sont basés sur le nombre de pages ou les bookmarks. Hors, je n'ai comme information que l'index de début d'un fragment et sa longueur qui sont stockés dans des tableaux.
    Après quelques essais et lecture de l'API, je suis arrivé au résultat suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    PdfReader reader = new PdfReader("monfichier.pdf");
     
    for (int i = 0; i < beginIndexArray.length; i++) {
     
     FileOutputStream foStream = new FileOutputStream("monfragment"+i+".pdf");
     PRStream prStream = new PRStream(reader, beginIndexArray[i] );
     prStream.setLength(fragmentLengthArray[i] );
     Document pdfFragmentDoc = new Document();
     PdfWriter pdfFragmentWriter = PdfWriter.getInstance(pdfFragmentDoc ,  foStream);
     prStream.toPdf(pdfFragmentWriter, foStream);
    }
    A la sortie, j'ai des fichiers pdf qui ont l'air de ne pas avoir d'erreurs, car je peux les lire avec Acrobat. Mais le hic, c'est que quand j'essaie des les ouvrir avec PDF-Analyzer (http://www.softpedia.com/get/Office-...Analyzer.shtml), il ne peut les ouvrit et me met une erreur d'adresse bizarre.
    Est-ce que c'est une manière juste d'écrire le fichier PDF avec la méthode toPdf? L'API de iText est assez pauvre en commentaires et toPdf(...) est copié de la classe PDFDictionarry.
    Sinon est-ce que vous connaissez un bon outil (en freeware) pour tester l'intégrité d'un pdf, genre lisible par acrobat (quelles versions), sans erreurs, ou morceaux de données erronées?
    Merci!

    Amir

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/09/2014, 09h20
  2. Modification des documents PDF avec iText
    Par bittar dans le forum Débuter avec Java
    Réponses: 10
    Dernier message: 19/07/2013, 01h34
  3. Réponses: 0
    Dernier message: 02/08/2011, 12h15
  4. Réponses: 3
    Dernier message: 19/08/2009, 23h57
  5. peut-on protéger des documents pdf avec 4d?
    Par longomarc dans le forum 4D
    Réponses: 2
    Dernier message: 06/10/2007, 13h11

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