2017-06-14 1 views
0

J'utilise pdfbox-0.7.3.jar. Je sais que les fichiers de classe associés manquants appartiennent à JAR pdfbox-0.7.3 mais quand j'attache le fichier source. continuer à montrer les fichiers .class manquants. je cherche des suggestions sur l'erreur ci-dessous.java.lang.NoClassDefFoundError: org/fontbox/afm/FontMetric

import java.io.File; 
    import java.io.FileInputStream; 
    import java.io.IOException; 
    import org.pdfbox.cos.COSDocument; 
    import org.pdfbox.pdfparser.PDFParser; 
    import org.pdfbox.pdmodel.PDDocument; 
    import org.pdfbox.util.PDFTextStripper; 
    import java.lang.NoClassDefFoundError; 
    import java.util.Scanner; 
     public class ggg{ 
     public static void main(String args[]) { 
      // PDFTextStripper pdfStripper = null; 
       // PDDocument pdDoc = null; 
      // COSDocument cosDoc = null; 
      File file = new File("C:\\Users\\firstfile.pdf"); 
      try { 
       PDFParser parser = new PDFParser(new FileInputStream(file)); 
       parser.parse(); 
       COSDocument cosDoc = parser.getDocument(); 
       PDFTextStripper pdfStripper = new PDFTextStripper(); 
       PDDocument pdDoc = new PDDocument(cosDoc); 
       pdfStripper.setStartPage(1); 
       pdfStripper.setEndPage(5); 
       String parsedText = pdfStripper.getText(pdDoc); 
       System.out.println(parsedText); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
    } 
Exception in thread "main" java.lang.NoClassDefFoundError: org/fontbox/afm/FontMetric 
    at org.pdfbox.pdmodel.font.PDFont.getAFM(PDFont.java:334) 
    at org.pdfbox.pdmodel.font.PDSimpleFont.getFontHeight(PDSimpleFont.java:104) 
    at org.pdfbox.util.PDFStreamEngine.showString(PDFStreamEngine.java:336) 
    at org.pdfbox.util.operator.ShowTextGlyph.process(ShowTextGlyph.java:80) 
    at org.pdfbox.util.PDFStreamEngine.processOperator(PDFStreamEngine.java:452) 
    at org.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:215) 
    at org.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:174) 
    at org.pdfbox.util.PDFTextStripper.processPage(PDFTextStripper.java:336) 
    at org.pdfbox.util.PDFTextStripper.processPages(PDFTextStripper.java:259) 
    at org.pdfbox.util.PDFTextStripper.writeText(PDFTextStripper.java:216) 
    at org.pdfbox.util.PDFTextStripper.getText(PDFTextStripper.java:149) 
    at ggg.main(ggg.java:30) 
+0

Vous devez ajouter cette bibliothèque à votre chemin de classe. Quel outil de construction utilisez-vous? –

+0

Vous avez ajouté ce fichier jar dans le chemin de compilation mais vous recevez toujours une erreur? –

+0

@nikita_pavlenko oui, j'ai ajouté dans mes propriétés classpath only -> javabuildpath -> libraries -> jars externes. Apache PDFBox, IDE eclipse. – vasam

Répondre

0

Semble que vous n'utilisez aucun outil de construction.

Malheureusement, cette bibliothèque a des dépendances supplémentaires.

org.fontbox.afm.FontMetric is a class that is located in fontbox-0.1.0.jar

Vous pouvez aller à Maven Central - PDF Box et télécharger et ajouter toutes les bibliothèques mentionnées dans les dépendances à votre projet.

enter image description here

Ce que vous pouvez faire est de configurer un projet Maven. Et ajoutez cette dépendance à votre fichier pom.xml. Pour ce faire, vous devez:

  1. Installation maven
  2. Créer un projet en utilisant la commande de ligne de commande maven

    archétype mvn -B: générer \ -DarchetypeGroupId = org.apache.maven.archetypes \ -DgroupId = com.mycompany.app \ -DartifactId = my-app

  3. dépendance PDF Ajouter à Maven pom.xml fichier à la section <dependendencies>

    <dependency> <groupId>pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>0.7.3</version> </dependency>

  4. Ouvrez votre projet généré comme un projet Maven dans votre IDE (dans votre cas, il est Eclipse)

  5. projet Actualiser dans IDE et laissez la bibliothèque Eclipse téléchargement avec toutes les dépendances pour vous.

+0

peut suggérer des API similaires à la place en utilisant Maven. – vasam

+0

@vasam vous pouvez utiliser la même API, ajoutez simplement les bibliothèques suivantes à votre projet. Vous pouvez suivre les liens et appuyez sur le bouton "Download Jar" [jar 1] (https://mvnrepository.com/artifact/bouncycastle/bcmail-jdk14/136), [jar 2] (https://mvnrepository.com/ artefact/bouncycastle/bcprov-jdk14/136), [jar 3] (https://mvnrepository.com/artifact/org.fontbox/fontbox/0.1.0), [jar 4] (https: // mvnrepository. com/artefact/org.jempbox/jempbox/0.2.0), –

+0

@vasam A-t-il aidé? –