自定义PDFTextStripper PDFbox

问题描述 投票:0回答:2

[PDFTextStripper具有从整个文档中提取文本的功能,是否有一种方法可以在识别出某个值之后仅在特定值之后提取文本,例如:

A B C D G   1 line

A B C D G   2 line

A B C D G   3 line

QUANTITY  4 line

我想找到数量(字符串)后开始提取文本如果有人处理PDFBox并提出建议,将不胜感激

或者是否只有在文本将包含的值之后碰到一行时才可以添加到列表?

java pdfbox
2个回答
0
投票
最简单的解决方案是捕获整个文本,然后创建一个表示-> "DESCRIPTION\\s*Reference\\s*QUANTITY(.*)"的模式,因此基本上我想捕获上述单个页面上的所有内容

  1. 创建一个将String文本作为参数的函数,找到单个matcher.group(1),然后返回StringOptional<String>
  2. 创建一个模式,并使用正则表达式告诉该模式,您想从哪里开始捕获

0
投票
您可以按照Artjom的说明捕获整个文本,也可以创建一个自PDFTextStripper扩展的自定义PDFTextStripper并覆盖解析文本的函数,像这样

@Override protected void writeString(String text, List<TextPosition> textPositions) { ... }

然后使用TextPositions确定应该开始解析的位置
© www.soinside.com 2019 - 2024. All rights reserved.