2009-10-28 6 views
6

Ich bekomme ein Problem zu lesen PDF-Dateien mit iText in Java. Ich kann nur eine Seite lesen, aber wenn ich zur zweiten Seite gehe, gibt es Ausnahme. Ich möchte alle Seiten jeder pdf-Datei lesen.Lesen Sie pdf mit iText

PdfTextExtractor parser =new PdfTextExtractor(new PdfReader("C:/Text.pdf")); 
parser.getTextFromPage(3); 

Ich benutze diese Zeilen und in der zweiten Zeile gibt Ausnahme.

+2

Bitte listen Sie die Ausnahme auf, die Sie erhalten, denn ohne diese Informationen gibt es keine weiteren Informationen. –

Antwort

2
  1. Versuchen Sie, den Speicherort der Datei zu ändern. Manchmal lässt das Betriebssystem es nicht zu, dass Dateien von anderen Systemlaufwerken von anderen Anwendungen gelesen werden. Stellen Sie irgendwo in D: usw. Ich stehe dieses Problem in Vista beim Lesen von Dateien vom Desktop.

  2. Ich lief in der Tat die gleichen zwei Zeilen Code auf einem meiner PDF und es hat den Text gedruckt. Stellen Sie außerdem sicher, dass Sie über ausreichende Seiten im PDF verfügen. (3 Seiten oder mehr) oder versuchen Sie mit Parser.getTextFromPage (1) usw., um Inhalt von anderen Seiten zu erhalten.

+0

Danke Chef Dies ist meine Schuld. Noch einmal vielen Dank. – Sunil

0

Wenn Sie eine Seite sagen, meinst du die erste Seite? Möglicherweise indizieren Sie die Seiten falsch? Ohne weitere Informationen könnte es alles sein.

+0

PdfTextExtractor-Parser = neuer PdfTextExtractor (neuer PdfReader ("C: /Text.pdf")); parser.getTextFromPage (3); Ich benutze diese Zeilen. Diese gibt Ausnahme – Sunil

+0

Welche Ausnahme gibt es? –

+0

java.io.IOException: C:/Text.pdf wurde nicht als Datei oder Ressource gefunden. bei com.lowagie.text.pdf.RandomAccessFileOrArray. (Unbekannte Quelle) bei com.lowagie.text.pdf.RandomAccessFileOrArray. (Unbekannte Quelle) bei com.lowagie.text.pdf.PRTokeniser. (Unbekannte Quelle) bei com.lowagie.text.pdf.PdfReader. (Unbekannte Quelle) bei com.lowagie.text.pdf.PdfReader. (Unknown Source) bei test1.ReadPdf.read (ReadPdf.java:23) bei test1.ReadPdf.main (ReadPdf.java:55) – Sunil

0

Konstruieren Sie den Parser und den Reader für jede Operation neu? Sie können das tun, aber es ist nicht sehr effizient (es gibt viel Aufwand beim Erstellen eines neuen PdfReader).

0
import com.itextpdf.text.pdf.PdfReader; 
import com.itextpdf.text.pdf.parser.PdfTextExtractor; 

/** 
* This class is used to read an existing 
* pdf file using iText jar. 
* @author javawithease 
*/ 
public class PDFReadExample { 
    public static void main(String args[]){ 
    try { 
    //Create PdfReader instance. 
    PdfReader pdfReader = new PdfReader("D:\\testFile.pdf");  

    //Get the number of pages in pdf. 
    int pages = pdfReader.getNumberOfPages(); 

    //Iterate the pdf through pages. 
    for(int i=1; i<=pages; i++) { 
     //Extract the page content using PdfTextExtractor. 
     String pageContent = 
     PdfTextExtractor.getTextFromPage(pdfReader, i); 

     //Print the page content on console. 
     System.out.println("Content on Page " 
          + i + ": " + pageContent); 
     } 

     //Close the PdfReader. 
     pdfReader.close(); 
    } catch (Exception e) { 
    e.printStackTrace(); 
    } 
    } 
}