我当前正在尝试使用PDFBox和Selenium从已经通过链接上传和访问的PDF中获取文本。 我以此为来源:http://www.seleniumeasy.com/selenium-tutorials/how-to-extract-pdf-text-and-verify-using-selenium-webdriver-java
public String function(String pdf_url) {
PDFTextStripper pdfStripper = null;
PDDocument pDoc;
COSDocument cDoc;
String parsedText = "";
try {
URL url = new URL(pdf_url);
BufferedInputStream file = new BufferedInputStream(url.openStream());
PDFParser parser = new PDFParser(file);
parser.parse();
cDoc = parser.getDocument();
pdfStripper = new PDFTextStripper();
pdfStripper.setStartPage(1);
pdfStripper.setEndPage(1);
pDoc = new PDDocument(cDoc);
parsedText = pdfStripper.getText(pDoc);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return parsedText;
}
Error: End-of-File expected line
at org.apache.pdfbox.pdfparser.BaseParser.readLine(BaseParser.java:1519)
at org.apache.pdfbox.pdfparser.PDFParser.parseHeader(PDFParser.java:372)
at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:186)
at scripts.Script.grabPDF_Text(Script.java:94)
at scripts.Script.main(Script.java:817)
为什么会出现此错误?
答案 0 :(得分:1)
请检查两个文件的大小均为0 KB 要么 您可以尝试尝试(最终PDDocument文档= PDDocument.load(file,MemoryUsageSetting.setupTempFileOnly())){
答案 1 :(得分:0)
这是您要求使用PDFURL共享的示例
string PDFURL = "https://www.adobe.com/support/products/enterprise/knowledgecenter/media/c4611_sample_explain.pdf";
function(PDFURL1);
public String function(String pdf_url)
{
//Exact same code as yours
}
对于使用PDF作为本地文件,URL和BufferedInputStream需要替换为
File file = new File(pdf_url);
PDFParser parser = new PDFParser(new FileInputStream(file));
希望这会有所帮助