pdf在netbeans 8.1中使用pdfbox进行文本转换

时间:2016-04-06 11:56:30

标签: pdfbox netbeans-8.1

我试图将pdf文档转换为文本,但我得到一个空指针异常..不明白为什么错误来了。错误显示在import语句中。 我附上以下代码:

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)

1 个答案:

答案 0 :(得分:1)

是的,您正在传递空对象:

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

顺便说一句,作为奖励,这里有一些用PDFBox打开PDF文件的更新(和更短)代码,我遗漏了异常处理:

    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);