gpt4 book ai didi

java - 使用icepdf搜索句子并获取行号

转载 作者:太空宇宙 更新时间:2023-11-04 07:27:06 26 4
gpt4 key购买 nike

我尝试用icepdf搜索句子。大多数时候都得到了正确的结果。但我现在面临的问题是

  • 搜索从一行开始到下一行结束的句子失败。有没有找到相同的解决方案?我尝试拆分这些句子并单独搜索它们。但这可能会导致更多问题。

  • 最后,有没有什么方法可以让我知道与搜索键匹配的行号。请帮忙。

最佳答案

循环遍历文档中的所有行并创建句子列表。每个句子可以是一个 WordText 对象列表。然后搜索您创建的列表以找到您的句子。

这里是一些示例代码(我现在还没有检查)来构建 WordText 对象列表的列表。

ArrayList<ArrayList<WordText>> Sentences = new ArrayList<ArrayList<WordText>>;
ArrayList<WordText> currentSentence = new ArrayList<WordText>;
Document document = new Document();

// Build sentences
for (int pageNumber = 0, max = document.getNumberOfPages();
pageNumber < max; pageNumber++) {
PageText pageText = document.getPageText(pageNumber);
ArrayList<LineText> pageLines = pageText.getPageLines();
for (LineText pageLine : pageLines) {
ArrayList<WordText> words = pageLine.getWords();
for (WordText word : words) {
// If this is a word, and the last word was not a space,
// start a new sentence
if(!word.getText().equals(" ") && currentSentence.size() > 0
!currentSentence.get(currentSentence.size() - 1).getText().equals(" ")) {
sentences.add(currentSentence);
currentSentence = new ArrayList<WordText>;
}
// Add word to current sentnece
currentSentence.add(word);
}
// Add the last sentence in
sentences.add(currentSentence);
}
}

如果需要对 WordText 列表进行排序,可以比较 WordText 对象的 y 值,然后比较 x 值。

关于java - 使用icepdf搜索句子并获取行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18372084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com