【发布时间】:2016-05-18 10:12:24
【问题描述】:
编写了一个从 PDF 文档中读取文本的函数。 使用 scala 语言、Selenium、PDFBox 2.0.1。
下面是代码:
enter code here
import org.openqa.selenium.firefox.{FirefoxBinary, FirefoxDriver, FirefoxProfile}
import org.apache.pdfbox.pdfparser.PDFParser
import org.apache.pdfbox.text.PDFTextStripper
import java.io.BufferedInputStream
def pdfreaddata {
driver.get("https://www.....pdf")
driver.manage.timeouts.implicitlyWait(50, TimeUnit.SECONDS)
val url: URL = new URL(driver.getCurrentUrl)
println(url)
val fileToParse: BufferedInputStream = new BufferedInputStream(url.openStream())
val parser: PDFParser = new PDFParser(fileToParse)
parser.parse()
val output: String = new PDFTextStripper().getText(parser.getPDDocument)
println("pdf Value" + output)
parser.getPDDocument.close()
driver.manage.timeouts.implicitlyWait(100, TimeUnit.SECONDS)
}
在val parser: PDFParser = new PDFParser(fileToParse) 中显示 PDFParser 错误
错误信息:
无法解析构造函数
用Java也试过代码,得到同样的错误。
【问题讨论】:
-
正确调用是 PDDocument doc = PDDocument.load(stream)。使用 new PDFParser() 是一种过时的方法。但是我不知道这是否是你麻烦的原因。