2016-04-06 34 views
1

Ich versuche, ein PDF-Dokument in Text zu konvertieren, aber ich bekomme eine Null-Zeiger-Ausnahme..Versteh nicht, warum der Fehler kommt. Der Fehler wird in der import-Anweisung angezeigt. Im den Code unten Befestigung:pdf to text covers mit pdfbox in netbeans 8.1

public class PDFTextParser { 

    private static Object f; 

    public static void main(String args[]) { 
    PDFTextStripper pdfStripper = null; 
    PDDocument pdDoc = null; 
    COSDocument cosDoc = null; 

    File file = new File("D:\\1.pdf"); 
    try { 
     f = null; 
     PDFParser parser = new PDFParser((RandomAccessRead) f); 
     FileInputStream f= new FileInputStream(file); 
     parser.parse(); 
     cosDoc = parser.getDocument(); 
     pdfStripper = new PDFTextStripper(); 
     pdDoc = new PDDocument(cosDoc); 
     pdfStripper.setStartPage(1); 
     pdfStripper.setEndPage(5); 
     String parsedText = pdfStripper.getText(pdDoc); 
     System.out.println(parsedText); 
     } catch (IOException e) { 
     e.printStackTrace(); 
     } 
     } 
    } 


    This is the error im getting: 
    Exception in thread "main" java.lang.NullPointerException 
    at org.apache.pdfbox.pdfparser.PDFParser.<init>(PDFParser.java:138) 
    at org.apache.pdfbox.pdfparser.PDFParser.<init>(PDFParser.java:102) 
    at org.apache.pdfbox.pdfparser.PDFParser.<init>(PDFParser.java:61) 
    at PDFTextParser.main(PDFTextParser.java:33) 
+0

Mögliches Duplikat [? Was ist eine Null-Zeiger-Ausnahme, und wie kann ich es beheben] (http://stackoverflow.com/questions/218384/what-is-a-null-Zeiger-Ausnahme-a nd-how-do-i-fix-it) – JEY

+0

Welche Aussage ist in Zeile 33 in Ihrem Programm? –

Antwort

1

Ja, sind vorbei Sie das Null-Objekt:

f = null; 
    PDFParser parser = new PDFParser((RandomAccessRead) f); 

Btw, als Bonus, hier ist etwas mehr Strom (und viel kürzer) Code ein PDF zu öffnen Datei mit PDFBox, ich habe die Ausnahmebehandlung weggelassen:

File file = new File("D:\\1.pdf"); 
    PDDocument pdDoc = PDDocument.load(file); 
    pdfStripper = new PDFTextStripper(); 
    pdfStripper.setStartPage(1); 
    pdfStripper.setEndPage(5); 
    String parsedText = pdfStripper.getText(pdDoc); 
    System.out.println(parsedText); 
+0

Vielen Dank !!! Es funktioniert perfekt !!! – Ria