本文概述
- 载入PDF文件
- 实例化StringBuilder和PDFTextStripper类
- 设置电话号码的模式
- 找回电话号码
- 关闭文件
- Java程序
请按照以下步骤从现有的PDF文档中提取电话号码-
加载PDF文档 我们可以使用static load()方法加载现有的PDF文档。此方法接受文件对象作为参数。我们也可以使用PDFBox的类名PDDocument调用它。
File file = new File("Path of Document");
PDDocument doc = PDDocument.load(file);
实例化StringBuilder和PDFTextStripper类 StringBuilder和PDFTextStripper类用于从PDF文档中检索文本。我们可以实例化这些类, 如下所示:
StringBuilder sb = new StringBuilder();
PDFTextStripper stripper = new PDFTextStripper();
设置电话号码的模式 模式是指我们要查找的电话号码的格式。在我们的示例中, 我们正在寻找具有10位数字的号码, 并在电话号码的两端查找至少一个空白。可以从以下设置模式:
Pattern p = Pattern.compile("\\s\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\s");
找回电话号码 我们可以使用Matcher检索电话号码, Matcher引用将在其中找到模式的实际文本。如果将找到电话号码, 请使用group()方法打印电话号码, 该方法引用遵循我们指定模式的下一个号码。
Matcher m = p.matcher(sb);
while (m.find()){
System.out.println(m.group());
}
关闭文件 【PDFBox提取电话号码】完成任务后, 我们需要使用close()方法关闭PDDocument类对象。
doc.close();
例-
这是一个PDF文档, 同时包含文本和电话号码。从此PDF中, 我们只想提取电话号码。在此, 我们假设电话号码的长度为10位数字。我们可以通过使用Java程序的PDFBox库来做到这一点。
文章图片
Java程序
import java.io.*;
import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.text.PDFTextStripper;
import java.util.regex.*;
public class ExtractPhone {public static void main(String[] args)throws IOException {// PDF file from the phone numbers are extracted
File fileName = new File("/eclipse-workspace/phone.pdf");
PDDocument doc = PDDocument.load(fileName);
// StringBuilder to store the extracted text
StringBuilder sb = new StringBuilder();
PDFTextStripper stripper = new PDFTextStripper();
// Add text to the StringBuilder from the PDF
sb.append(stripper.getText(doc));
// Regex->
The Pattern refers to the format you are looking for. In our example, we are looking for
//numbers with 10 digits with atleast one surrounding white spaces on both ends.
Pattern p = Pattern.compile("\\s\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\s");
// Matcher refers to the actual text where the pattern will be found
Matcher m = p.matcher(sb);
while (m.find()){
//group() method refers to the next number that follows the pattern we have specified.
System.out.println(m.group());
}if (doc != null) {
doc.close();
}
System.out.println("\nPhone Number is extracted");
}
}
输出
成功执行以上程序后, 我们可以看到以下输出。
文章图片
推荐阅读
- PDFBox功能
- PDFBox提取图像
- 技术编辑教您win7放大镜技巧怎样打开
- 本文详细说明win7电脑字体怎样改
- 笔者教你压缩软件怎样给文件夹加密
- 详细教您win7如何整理磁盘碎片
- 本文详细说明电脑右下角老跳出广告怎样办
- 本文教您怎样校准电脑的时间
- 本文教您win7如何运用自动关机命令