2016-08-30 38 views
0

我收到錯誤閱讀PDF硒:構造PDFParser(的BufferedInputStream)是未定義

構造PDFParser(的BufferedInputStream)是未定義

我想讀使用Selenium PDF內容。

WebDriver driver=new FirefoxDriver(); 
driver.get("http://www.axmag.com/download/pdfurl-guide.pdf"); 
URL TestURL = new URL("http://www.axmag.com/download/pdfurl-guide.pdf"); 
BufferedInputStream TestFile = new BufferedInputStream(TestURL.openStream()); 
PDFParser TestPDF = new PDFParser(TestFile); 
TestPDF.parse(); 
String TestText = new PDFTextStripper().getText(TestPDF.getPDDocument()); 
System.out.println(TestText); 
Assert.assertTrue(TestText.contains("Open the setting.xml, you can see it is like this")); 

任何人都可以幫忙嗎?

回答

2

我得到了你遇到的同樣的問題。問題是由於使用(Apache PDFBox 2.0.0 API)jar文件。 從構建路徑中刪除它們並使用(Apache PDFBox 1.8.11 API)作爲2.0中的PDFParser類沒有PDFParser(BufferedInputStream args)構造函數。但1.8有PDFParser(InputStream args)構造函數。所以它會明確解決你的問題。

我也會分享我的代碼。如果你需要幫助,你可以從中獲得幫助。

InputStream is = new FileInputStream(getLatestFile); 
     PDFParser parser = new PDFParser(is); 
     parser.parse(); 
     String output=new PDFTextStripper().getText(parser.getPDDocument()); 
     System.out.println(output); 
     parser.getPDDocument().close(); 
+0

可能的工作,你」重新使用過時的打開文件的方法。 (這是在幾個SEO網站上找到的) –

1

爲PDFBox的2.0.2(也適用於1.8 *)最好的代碼應該是這樣 - 你只需要調用PDDocument.load()打開PDF文件:

WebDriver driver = new FirefoxDriver(); 
driver.get("http://www.axmag.com/download/pdfurl-guide.pdf"); 
URL url = new URL("http://www.axmag.com/download/pdfurl-guide.pdf"); 
BufferedInputStream bis = new BufferedInputStream(url.openStream()); 
PDDocument doc = PDDocument.load(bis); 
String text = new PDFTextStripper().getText(doc); 
doc.close(); 
bis.close(); 
System.out.println(text); 
Assert.assertTrue(text.contains("Open the setting.xml, you can see it is like this"));