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 :

Lire contenu d'un PDF


Sujet :

Documents Java

  1. #1
    Membre éclairé Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Par défaut Lire contenu d'un PDF
    Bonjour,
    Je bosse sur un programme de gestion d'archive PDF
    pour simplifier la recherche dans les contenus à l'upload du pdf
    un programme extrait le texte et le stock dans la BDD ..

    Dans un premier temps , j'ai utilisé un script java de démo "ApriseJavaPDFLib"
    Qui est limité à 1000 caractères pas page .. pas suffisant ..
    Ce script est un .jar que je peu lancer facilement depuis un batch
    ce qui est bien car j'ai aucune compétence en java

    Depuis, je cherche un solution qui ne soit pas un version démo
    je sais qu'il existe Itextpdf , mais je ne sais pas l'utiliser ..

    Si quelqu'un à une solution ou une piste .. Merci d'avance

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Personnellement, j'utiliserais iText.
    Tu peux regarder ici pour une solution.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Par défaut
    Merci,
    J'ai exactement les même besoins que lui,
    Donc il faut que je m’intéresse au même code..

    Punaise, je crois qu'une bonne nuit de repos m'aidera à comprendre
    Java et moi .. on se connait pas encore

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Ne t'inquiète pas, il est sympa

    Je l'ai testé avec une version iText-2.1.7.jar, ça fonctionne bien même si elle n'est pas franchement fraiche...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Avec la dernière version iText 5.5.9, c'est encore plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    PdfReader reader = new PdfReader(args[0]);
    System.out.println(PdfTextExtractor.getTextFromPage(reader, reader.getNumberOfPages()));
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre éclairé Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Par défaut
    Encore merci ..
    Maintenant il s'agit pour moi de réussir à lancer ça depuis un .batch

    Et honnêtement, je suis pas encore en bonne voie ..

    Je m’aperçois que c'est réellement une compétence que j'ai pas

    J'ai tenté un .batch ( qui ne marche pas )
    J'ai trop honte pour mettre le code ici ..
    Mais je ne suis pas en bonne voie au vue des erreurs ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    --- Extract text from a PDF file - test.pdf ---
    Erreur : la méthode principale est introuvable dans la classe com.itextpdf.text.
    pdf.PdfReader, définissez la méthode principale comme suit :
       public static void main(String[] args)
    Si quelqu'un de bonne intention .. Merci

  7. #7
    Membre éclairé Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Par défaut
    Bon,
    Il faut que j'accepte le ridicule ( il ne tue pas )
    juste pour montrer à quel point je suis largué ..

    Voici le code de mon batch
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @echo off
     
    echo --- Extract text from a PDF file - sample.pdf ---
     
    java -classpath .;itextpdf-5.5.9.jar com.itextpdf.text.pdf.PdfReader
     
    PDFReader reader = new PDFReader('sample.pdf');
     
    System.out.println(PdfTextExtractor.getTextFromPage(reader, reader.getNumberOfPages()));
     
    pause
    J'imagine que pour quelqu'un ayant un minimum de notion il doit être risible
    mais je dois avouer patauger .. tester ..
    sans succès ??

  8. #8
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Tu veux lancer ce traitement par une ligne de commande (bash ou bat) ?
    Si c'est ça, le plus simple serait de générer un jar qui contient l'api iText, la classe principale (celle du main) et de lancer via
    java -jar nomDuJar.jar
    Avec Eclipse

    Click droit sur la classe contenant le main -> Run As -> Run configurations
    Tu places les paramètres qui vont bien et Apply


    Pour générer le jar :

    Click droit sur le Projet -> Export -> Runnable JAR file
    Tu choisis le "Launch configuration" par rapport à l'étape précédente
    Tu choisis le répertoire/nom cible du jar
    Tu choisis Extract required libraries into generated JAR (si ce n'est pas le cas)
    -> Finish
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre éclairé Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Par défaut
    Juste pour répondre à ta première question ,
    c'est un .bat
    L'idée étant de pouvoir le lancer durant un traitement d'un script PHP

    Donc, comme tu dis, (je veux volontiers te croire) c'est surement le plus simple ..
    Mais pour l'instant, j'y suis pas ..

    Je vais encore essayé en suivant tes précieux conseils

    Merci encore !

  10. #10
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    De rien
    Je te laisse avancer, pose tes questions si besoin
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre éclairé Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Par défaut
    Encore merci à Obutterlin

    Et à quicklyjava

    En luttant, ratant et après de nombreux essais ..
    J'ai fini par y arriver !!

    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
    package com.pdftotxt;
     
    import java.io.IOException;
    import java.io.File;
    import java.io.FileOutputStream;
     
    import com.itextpdf.text.pdf.PdfReader;
    import com.itextpdf.text.pdf.parser.PdfTextExtractor;
     
     
     
    public class iTextReadAndWrite {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
            try {
     
    			PdfReader reader = new PdfReader("sample.pdf");
    			FileOutputStream fos = new FileOutputStream("sample.txt");
    	        for (int i = 0; i < reader.getNumberOfPages(); i++)
                {
    	        	String page = PdfTextExtractor.getTextFromPage(reader, i+1);
    	        	System.out.println("\n\n"+page+"\n\n");
    	        	fos.write(PdfTextExtractor.getTextFromPage(reader, i+1).getBytes("UTF-8"));
     
                }
     
     
     
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
     
    	}
     
    }
    Bon .. je suis pas certain d'être capable de le reproduire ..

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

Discussions similaires

  1. [PDF] Lire le contenu d'un pdf
    Par hacksi dans le forum Langage
    Réponses: 7
    Dernier message: 06/02/2008, 10h37
  2. [Système] Lecture du contenu d'un PDF
    Par Diss dans le forum Langage
    Réponses: 9
    Dernier message: 20/09/2006, 15h59
  3. [VB6] Afficher le contenu d'un Pdf dans une form
    Par joquetino dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 04/08/2006, 19h59
  4. lire contenu base .btr (Btrieve)
    Par Harry dans le forum Bases de données
    Réponses: 8
    Dernier message: 23/01/2005, 17h19

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