这是我第一次使用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,但这只会在运行时以不同的错误
结束请帮助谢谢。
答案 0 :(得分:0)
如果您比较pdfbox v2与v1.8中的pdfparser的javadoc,您会注意到构造函数定义已从
更改PDFParser(InputStream input)
到
PDFParser(RandomAccessRead source)
因此请确保从maven引用正确的版本。如果您打算坚持使用版本2,请确保使用RandomAccessFile之类的内容,而不是FileInputStream。