Comment lire un fichier PDF en Java

Il est difficile de ne pas lire les fichiers PDF en Java en utilisant les bibliothèques qui sont facilement disponibles. La lecture des fichiers PDF vous permet d'écrire des programmes Java qui peuvent traiter le texte dans ces fichiers. Une option pour la lecture des fichiers PDF est libre, open-source bibliothèque PDFBox disponibles à partir de Apache. La plate-forme de développement Java Eclipse rend ce travail plus facile et gère les bibliothèques que vous serez en train de télécharger. Vous devez être familier avec la programmation Java pour faire usage de ces bibliothèques Java.

Rassemblez les bibliothèques nécessaires

  1. Télécharger le JDK Java depuis le site de Sun. Ceci est un fichier exécutable que vous pouvez installer sur votre système en l'exécutant. Des versions sont disponibles pour Windows, Mac et Linux. Cliquez sur le rouge "Télécharger" bouton. Enregistrer un fichier appelé "JDK 6uxx-windows-xxx.exe" lorsque vous êtes invité. Enregistrez ce fichier et puis double-cliquez dessus pour lancer l'installateur Java.

  2. Télécharger le système de développement Eclipse et décompressez-le dans un répertoire de haut niveau. Sélectionner "Eclipse IDE for Java Developers." Cela va démarrer le téléchargement du logiciel "eclipse-java-galileo-SR2-win32.zip." Double-cliquez sur le fichier pour le décompresser après le téléchargement est terminé. Sélectionnez le "C:" emplacement du répertoire racine pour décompresser Eclipse.

  3. Lancer Eclipse en double-cliquant sur "eclipse.exe" dans le répertoire que vous venez de créer en décompressant le fichier zip éclipse. Dans le système Eclipse, créez un projet nommé "ImprimerPDF." Sélectionner "Fichier" puis "Nouveau" puis "Projet Java." Tapez le nom du projet "ImprimerPDF" dans la boîte de dialogue qui apparaît. Assurez-vous que le bouton radio est sélectionné qui dit "Créer des dossiers distincts pour les fichiers source et de classe." Cliquez "Terminer."

  4. Créer un "lib" dossier dans votre "ImprimerPDF" projet. droit; cliquez sur le "ImprimerPDF" projeter et sélectionnez "Nouveau" et puis "Dossier." Entrez le nom "lib" et cliquez sur "Terminer."

  5. Télécharger Apache "PDFBox.jar" à partir du site Apache et le copier dans le répertoire lib vous venez de créer. Sur la même page web, télécharger le "fontbox-nn.jar" déposer et de la "jempbox-nn.jar" déposer. Dans chaque cas, lorsque vous cliquez sur ce fichier jar, il vous amène à une page où vous pouvez sélectionner l'un de plusieurs serveurs qui peuvent fournir ce fichier. Choisissez chacun d'entre eux et chaque fichier jar va télécharger. Copiez chaque fichier jar dans le répertoire lib vous venez de créer.




  6. Télécharger le package de log4j.jar Apache de la même façon et copiez le fichier dans le répertoire log4j.jar. La bibliothèque Apache PDFBox utilise cette bibliothèque d'archivage d'Apache, donc ce fichier doit être présent.

  7. Télécharger le package Apache Commons Discovery comme un fichier zip. Double-cliquez sur le fichier zip, sélectionnez le "commons-découverte-nn.jar" et l'extraire dans le répertoire lib.

  8. Dans Eclipse, cliquez sur le "lib" répertoire et appuyez sur "F5." Assurez-vous que tous les fichiers JAR que vous avez ajoutés sont affichés.

  9. droit; cliquez sur le projet de ImprimerPDF et sélectionnez "Propriétés." Sélectionner "Chemin de compilation Java" et sélectionnez le "Bibliothèques" onglet. Cliquer sur "Ajouter bocaux" et allez dans le répertoire lib vous venez de créer, et d'ajouter "commons-logging-nn.jar" "fontbox-nn.jar," "jempbox-nn.jar," "log4j-nn.jar," et "PDFBox-nn.jar." Cliquer sur "D'ACCORD."

Ecrire le code pour lire les fichiers PDF

  1. droit; cliquez sur le "src" dossier de votre "ImprimerPDF" projeter et sélectionnez "Nouveau" et le "Package." Créer un paquet en utilisant n'importe quel nom significatif. Par exemple, nommez le paquet "com.pdf.util." Cliquez "Terminer."

  2. droit; cliquez sur le nom du package que vous venez de créer et sélectionnez "Nouveau" et puis "Classe." Créer une classe nommée "PDFTextParser." Assurez-vous de cliquer sur la case marquée "principal public static void ..." de sorte que le système crée un "principal" Procédé.

  3. Modifier la "principal" Procédé de la "PDFTextParser" classe contient le code suivant:

    static void main (String args []) {publics
    &# 9-&# 9-PDFTextParser pdf = new PDFTextParser ("données / javaPDF.pdf")
    GO
    &# 9-&N ° 9 - // imprimer les résultats
    &# 9-&# 9-System.out.println (pdf.getParsedText ())
    GO
    &# 9-}

    Notez que le fichier que vous souhaitez imprimer est énoncé dans le constructeur pour PDFTextParser ("données / JavaPDF.pdf"). Il pourrait tout aussi bien être un argument de ligne de commande:

    &# 9-&# 9-PDFTextParser pdf = new PDFTextParser (argv [0])
    GO

    ou choisi parmi une interface graphique.

    Il crée une instance de la classe PDFTextParser, puis appelle sa "getParsedText" Procédé.




  4. Insérez le code suivant juste en dessous de la ligne de classe supérieure "PDFTextParser public class" qui a été créé pour vous.

    PDFParser analyseur privée = null
    GO

    &# 9 - texte // Extrait du document PDF
    &# 9 PDFTextParser public (string filename) {
    &# 9-&# Fichier 9-File = new File (fichier)
    GO
    &# 9-&# 9-if (! File.isFile ()) {
    &# 9-&# 9-&# 9-System.err.println ("Fichier " + FileName + " n'existe pas.")
    GO
    &# 9-&# 9-}
    &# 9-&# 9 - // Configurer instance de PDF analyseur
    &# 9-&# 9-try {
    &# 9-&# 9-&# 9-parser = new PDFParser (nouvelle FileInputStream (fichier))
    GO
    &# 9-&# 9-} catch (IOException e) {
    &# 9-&# 9-&# 9-System.err.println ("Impossible d'ouvrir le fichier PDF Parser. " + E.getMessage ())
    GO
    &# 9-&# 9-}
    &# 9-}
    &# 9 - // -------------------------------
    &# 9-public String getParsedText () {
    &# 9-&# 9-PDDocument pdDoc = null
    GO
    &# 9-&# 9-COSDocument cosDoc = null-&# 9-
    &# 9-&# 9-String = null-parsedText
    GO
    &# 9-&# 9-&# 9-&# 9-
    &# 9-&# 9-try {&# 9-&# 9-&# 9-
    &# 9-&# 9-&# 9-PDFTextStripper pdfStripper = new PDFTextStripper ()
    GO
    &# 9-&# 9-&# 9-parser.parse ()
    GO
    &# 9-&# 9-&# 9-cosDoc parser.getDocument = ()
    GO
    &# 9-&# 9-&# 9-pdDoc = new PDDocument (cosDoc)
    GO
    &# 9-&# 9-&# 9-
    &# 9-&# 9-&# 9 - // obtenir la liste de toutes les pages
    &# 9-&# 9-&# 9-List liste = pdDoc.getDocumentCatalog (). getAllPages ()
    GO
    &# 9-&# 9-&# 9-
    &# 9-&# 9-&# 9 - // note que vous pouvez imprimer toutes les pages que vous voulez
    &# 9-&# 9-&# 9 - // en choisissant différentes valeurs de la page de début et de fin
    &# 9-&# 9-&# 9-pdfStripper.setStartPage (1) -&À base de 1 // - # 9
    &# 9-&# 9-&# 9-int length = list.size () -&# 9-&# 9 - // nombre total de pages
    &# 9-&# 9-&# 9-pdfStripper.setEndPage (longueur) -&# 9 - // dernière page
    &# 9-&# 9-&# 9-
    &# 9-&# 9-&# 9 - // obtenir le texte pour les pages sélectionnées
    &# 9-&# 9-&# 9-parsedText = pdfStripper.getText (pdDoc)
    GO
    &# 9-&# 9-} catch (IOException e) {
    &# 9-&# 9-&# 9-System.err
    &# 9-&# 9-&# 9-&# 9-&# 9-.println ("Une exception est survenue lors de l'analyse du document PDF."
    &# 9-&# 9-&# 9-&# 9-&# 9-&# 9-&# 9- + e.getMessage ())
    GO
    &# 9-&# 9-} finally {
    &# 9-&# 9-&# 9-try {
    &# 9-&# 9-&# 9-&# 9-si (cosDoc! = Null)
    &# 9-&# 9-&# 9-&# 9-&# 9-cosDoc.close ()
    GO
    &# 9-&# 9-&# 9-&# 9-si (pdDoc! = Null)
    &# 9-&# 9-&# 9-&# 9-&# 9-pdDoc.close ()
    GO
    &# 9-&# 9-&# 9-} catch (IOException e) {
    &# 9-&# 9-&# 9-&# 9-e.printStackTrace ()
    GO
    &# 9-&# 9-&# 9-}
    &# 9-&# 9-}&# 9-
    &# 9-&# 9-retour parsedText
    GO
    &# 9-}

  5. Exécutez le programme. droit; cliquez sur la classe de PDFTextParser et cliquez sur "Exécuter en tant que" et ensuite "Programme Java." Le programme devrait fonctionner et d'imprimer le contenu du texte du fichier PDF que vous avez entré votre code.

Réprimer Log4j démarrage Message d'erreur

  1. Créer un fichier de configuration pour supprimer le message d'erreur de log4j de système de journalisation Java créé quand il ne peut pas trouver un fichier de configuration au démarrage. Faites un clic droit sur le "src" dossier du projet de ImprimerPDF et sélectionnez "Nouveau" et puis "Fichier." Nommez le fichier "log4j.properties" Eclipse affiche un écran vide pour ce nouveau fichier.

  2. Collez les lignes suivantes dans l'écran vide représentant le "log4j.properties" déposer.

    # Réglez le niveau de l'enregistreur de la racine à la DEBUG et son seul appender A1.
    log4j.rootLogger = WARN, A1

    # A1 est réglée pour être une ConsoleAppender.
    log4j.appender.A1 = org.apache.log4j.ConsoleAppender

    # A1 utilise PatternLayout.
    log4j.appender.A1.layout = org.apache.log4j.PatternLayout
    log4j.appender.A1.layout.ConversionPattern =% - 4R [% t]% -5p% c% x -% m% n

  3. Enregistrez le "log4j.properties" déposer. La présence de ce fichier dans le haut niveau "src" répertoire supprimera le message log4j de démarrage et des messages de journalisation triviales. Le système de log4j permet d'imprimer uniquement les erreurs réelles.

Conseils & Avertissements

  • Il ya aussi un certain nombre de progiciels commerciaux que vous pouvez utiliser pour extraire du texte à partir de fichiers PDF, mais ils ne sont pas bon marché.
» » » » Comment lire un fichier PDF en Java