我正在网页上有一个链接,点击它在新窗口打开一个pdf文件。 我必须阅读该pdf文件,以根据已完成的事务验证一些数据。一种方法是下载该文件,然后使用它。 任何人都可以帮助我解决这个问题。我必须在IE 11上工作
先谢谢。
答案 0 :(得分:4)
使用PDFBox和FontBox。
public String readPDFInURL() throws EmptyFileException, IOException {
WebDriver driver = new FirefoxDriver();
// page with example pdf document
driver.get("file:///C:/Users/admin/Downloads/dotnet_TheRaceforEmpires.pdf");
URL url = new URL(driver.getCurrentUrl());
InputStream is = url.openStream();
BufferedInputStream fileToParse = new BufferedInputStream(is);
PDDocument document = null;
try {
document = PDDocument.load(fileToParse);
String output = new PDFTextStripper().getText(document);
} finally {
if (document != null) {
document.close();
}
fileToParse.close();
is.close();
}
return output;
}
由于旧版PDFBox中的某些功能已被弃用,我们需要使用另一个FontBox和PDFBox。我使用了PDFBox (2.0.3)和FontBox (2.0.3),它运行正常。但它不会读取图像。
答案 1 :(得分:0)
First Downlaod pdfbox jar。
strURL是一个包含.pdf文件的web URl: 像(https://example.com/downloads/presence/Online-Presence-CA-05-02-2017-04-13.pdf)
public boolean verifyPDFContent(String strURL, String text) {
String output ="";
boolean flag = false;
try{
URL url = new URL(strURL);
BufferedInputStream file = new BufferedInputStream(url.openStream());
PDDocument document = null;
try {
document = PDDocument.load(file);
output = new PDFTextStripper().getText(document);
System.out.println(output);
} finally {
if (document != null) {
document.close();
}
}
}catch(Exception e){
e.printStackTrace();
}
if(output.contains(text)){
flag = true;
}
return flag;
}