2017-07-18 1 views
0

J'ai un pdf nommé "example1.pdf" .Je veux le lire ligne par ligne.let la première ligne est "Bonjour mon nom est jhon". donc je le veux dans une ligne appelée String. Je l'essaie en utilisant pdfTextStripper et pdfBox mais je n'ai aucun moyen de le faire. Toute aide sera appriciatedComment lire pdf ligne par ligne

+2

Ajouter code correspondant à votre question. De plus, sachez que PDF n'a pas de modèle, il n'est donc pas si simple de créer une solution générique. –

+0

Vous devrez peut-être demander comment extraire toutes les chaînes du document pdf – simar

+0

simar je suis capable d'extraire toute la chaîne sur un document pdf en tant que chaîne unique. Je veux le lire ligne par ligne. – jagga

Répondre

1
import org.apache.pdfbox.pdmodel.PDDocument; 
import org.apache.pdfbox.text.PDFTextStripper; 
import org.apache.pdfbox.text.TextPosition; 

import java.io.ByteArrayOutputStream; 
import java.io.File; 
import java.io.IOException; 
import java.io.OutputStreamWriter; 
import java.io.Writer; 
import java.util.ArrayList; 
import java.util.List; 

/** 
* This is an example on how to extract text line by line from pdf document 
*/ 
public class GetLinesFromPDF extends PDFTextStripper { 

    static List<String> lines = new ArrayList<String>(); 

    public GetLinesFromPDF() throws IOException { 
    } 

    /** 
    * @throws IOException If there is an error parsing the document. 
    */ 
    public static void main(String[] args) throws IOException { 
     PDDocument document = null; 
     String fileName = "example1.pdf"; 
     try { 
      document = PDDocument.load(new File(fileName)); 
      PDFTextStripper stripper = new GetLinesFromPDF(); 
      stripper.setSortByPosition(true); 
      stripper.setStartPage(0); 
      stripper.setEndPage(document.getNumberOfPages()); 

      Writer dummy = new OutputStreamWriter(new ByteArrayOutputStream()); 
      stripper.writeText(document, dummy); 

      // print lines 
      for(String line:lines){ 
       System.out.println(line);    
      } 
     } 
     finally { 
      if(document != null) { 
       document.close(); 
      } 
     } 
    } 

    /** 
    * Override the default functionality of PDFTextStripper.writeString() 
    */ 
    @Override 
    protected void writeString(String str, List<TextPosition> textPositions) throws IOException { 
     lines.add(str); 
     // you may process the line here itself, as and when it is obtained 
    } 
} 

Référence - extract text line by line from pdf