java - 基于正则表达式从pdf文件中提取文本?

标签 java parsing pdf itext

我有一个 300 页的 pdf 文件,每组页面都包含一个人的身份信息,例如社会安全号码。

假设 1-4 的页面对应社交号码 987-65-4320,5-6 的页面对应社交号码 987-65-4321

我想提取第一位员工第一个社交号码位置第二个社交号码位置的所有信息,然后将它们保存在新的 pdf 文件中。

我看到的所有示例都是关于从 pdf 文件中提取所有文本,而不是基于像这样的特定标准:

extract text from pdf files

请告知如何实现这一目标。

最佳答案

这不是一种自动化技术,但是您可以获取文本(我可能只是将 pdf 复制粘贴到文本文件中),并使用正则表达式来查找您想要的信息吗?

在 Java 中,一些解析可能如下所示:

// Matches 3 digits, a dash, 2 digits, a dash, and four digits, and then all text
// until it finds another SSN
String text = "987-65-4320 some info 987-65-4321 other \ninfo";
Pattern p = Pattern.compile("(\\d{3}-\\d{2}-\\d{4})((?:.(?!\\d{3}-\\d{2}-\\d{4}))*)", Pattern.DOTALL);
Matcher m = p.matcher(text);
while (m.find())
    System.out.println(m.group(1) + ": " + m.group(2));

但是如果没有看到您要保存的信息,我无法帮助您获取它。

如果我想要一个新的 PDF,我会将信息放入 Microsoft Word 或 Google Docs 中并保存 PDF。

或者,如果您只想从一系列员工中“提取所有信息”,那么创建原始 PDF 的副本并删除一些页面是否可行?我见过一些网站可以让您这样做,但是 Chrome 的打印对话框(您可以使用它毫无问题地打开本地 PDF)可以让您指定页面范围,并将其另存为 PDF。

关于java - 基于正则表达式从pdf文件中提取文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11527050/

相关文章:

Java : parse C source code, 提取变量和方法

java - 在java中创建一个通用数组

jquery - 在 jQuery 中处理 xml 命名空间

python - 如何使用 Python 和正则表达式从文件中提取文本部分

javascript - 使用javascript创建循环来删除pdf中的书签

python - 使用 Python 在 PDF 中搜索文本?

java - 夸库斯 CDI : Interceptor has no bindings

java - 如何捕获从自定义类抛出到 Activity 中的异常?

java - 有没有办法在java中制作圆形hitbox?

php - Composer 要求在安装 barryvdh/laravel-dompdf 时出错