如何更改从阿帕奇提卡提取的文本的输出格式



我使用apache tika使用以下代码从pdf中提取文本:

'

Parser parser = new AutoDetectParser();
ContentHandler handler = new ToXMLContentHandler();
Metadata metadata = new Metadata();
FileInputStream inputstream = new FileInputStream(file);
ParseContext context = new ParseContext();
parser.parse(inputstream, handler, metadata, context);

'

输出如下:

'

<p>Level 1 
Level 2 
Level 3 
 Level 4 
 Level 5 
 Level 6 
  Level 7 
  Level 8 
  Level 9 
 Level 10 
 Level 11 
Level 12 
Level 13    </p>

'

有什么方法可以通过配置 pdf 解析器来获取输出,以便在输出中每个级别#包含在单个段落标签中?例如:

<p>Level 1</p>
<p>Level 2</p>

pdf中的每个级别实际上可以表示一个句子或段落。

尝试这样的事情:

// Get string data
String data = handler.toString();
// Remove tags or other things (depends on your needs)
data = data.replace("<p>","");
data = data.replace("</p>","");
// Now it looks like: String data ="Level 1 Level 2 Level 3 Level 4 Level 5 Level 6 ... ";
String newdata = "";
// Split string in all places contain [number]+[blank space]
for (String s: data.split("(?<=[0-9])(?=" ")")) {
    // append with desired strings
    s =  "<p>"+s+"</p>";
    // and store modified data
    newdata += s;
}

因此,如果需要,可以在标签"</p>"之后另外加上""。如果需要,您还可以一一输出所有s字符串。

我希望这是有帮助的。祝你好运。

相关内容

  • 没有找到相关文章

最新更新