word文本定位问题

阅读次数 5

请问下,我在网页端采用jssdk实现一个敏感词检测功能,后台有个敏感词/错词库,需要拿到用户上传的word文档的文字(图片不需要检测)内容去后台的敏感词库匹配,匹配完成后返回文档中每个敏感词/错词的位置,但是一旦word中含有图片或其他元素,就会造成定位不准,请问我能有什么办法来获得一个相对准确的定位,下面是代码

async function test () {
 const app = this.instance.Application
 const range = await app.ActiveDocument.Content

 //全文本内容, 获取到的是包含了 \t ,\n, 空格 的纯文字
 const text = await range.Text
 // 文档中有图片的话,这里获取到的Start和End在有时候会变得很长,比如Start:0, End: 1000, 但 text.length才是700
 console.log(await range.Start, await range.End)
 // 检测  
 const resultRanges: {	
    // 敏感词	
	word: string
    // 开始位置
	start: number
	// 结束位置
	end: number
  } = await sensitive(text)

  // 将敏感词加上下划线,在word中都是纯文本的时候准确,有图片后就不是很准
  const underlineGroupIds = await app.ActiveDocument.SetCustomUnderline({
        Underlines: resultRanges.map(item => {
			return [{
                pos: item.start,
                len: item.end - item.start,
                color: '#b33622',
                type: 'Straight'
        	}]
		})
   })
}

这种实现方式只解决了纯文本的时候的定位,但是一旦有图片或其他元素,就会定位错误,有没有其他方式可以获取一个相对准确的定位和range, 比如先把文档分段,然后按段去检测,有些段是图片就不检测。有没有这种api可以来实现,或是有其他的方案可以让我获取到一个比较准确的定位。麻烦了,谢谢。

0 Answers