使用 PDFbox 存储库的代码中未定义的构造函数

Undefined constructer in code employing the use of PDFbox repository

这是我第一次使用 Maven 存储库,如果解决方案很简单,我们深表歉意。

我的代码如下:

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

import org.apache.pdfbox.cos.COSDocument;
import org.apache.pdfbox.io.RandomAccessRead;
import org.apache.pdfbox.pdfparser.PDFParser;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;

public class application {

public static void main(String args[]) {
    PDFTextStripper pdfStripper = null;
    PDDocument pdDoc = null;
    COSDocument cosDoc = null;
    File file = new File("/Users/Desktop/Corporate reports/previous 'fetch' items/ARM2009.pdf");
    try {
        PDFParser parser = new PDFParser(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) {
        // TODO Auto-generated catch block
        System.out.println("Failed to parse : " +file);
    } 
}

}

基本上,第 19 行说:

PDFParser parser = new PDFParser(new FileInputStream(file));

编译时出错。它在说:

构造函数PDFParser(FileInputStream)是 未定义

我不知道该如何处理。我的 IDE 建议将参数转换为 RandomAccessRead 但这只是在 运行 time

以不同的错误结束

请帮忙谢谢

如果您比较 pdfbox v2 vs v1.8 中 pdfparser 的 javadocs,您会注意到构造函数定义已从

PDFParser(InputStream input)

PDFParser(RandomAccessRead source)

所以请确保您从 maven 引用了正确的版本。如果您打算坚持使用版本 2,请确保使用类似 RandomAccessFile 的内容,而不是 FileInputStream。