我目前正在尝试弄清楚如何扫描一些PDF文件并提取特定数据。主要是“截止日期:01/01/18”,“考试9/15/18”,“作业06-12-19”等。我是编程新手,想知道是否有人能指出我正确的方向。我看过iTextSharp,这有什么用吗?我想也许这个项目可能超出了我的能力范围,所以任何帮助/指针都会非常感激!
答案 0 :(得分:1)
查看API docs,特别是RegexBasedLocationExtractionStrategy
。
此类可以在PDF文档中搜索正则表达式,并返回其矩形和匹配的文本。
要使用此功能,您可以从pdfSweep(用于编辑的iText的附加组件)测试中获取灵感。
// get document
PdfDocument doc = new PdfDocument(new PdfReader(new File("input_document.pdf")));
int pageNr = 1;
PdfPage page = doc.getPage(pageNr);
// create parser
PdfDocumentContentParser parser = new PdfDocumentContentParser(doc);
// process document
RegexBasedLocationExtractionStrategy strategy = new RegexBasedLocationExtractionStrategy("date [0-9]+/[0-9]+/[0-9]+");
parser.processContent(pageNr, strategy);
for (IPdfTextLocation rect : strategy.getResultantLocations()) {
if (rect != null)
System.out.println(rect.getText());
}