You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PSPDFKit 2022.3.1版本中获取高亮文本?

在PSPDFKit 2022.3.1中通过高亮批注坐标提取对应文本

在PSPDFKit 2022.3.1版本中,你可以利用内置的getTextForRect方法,结合exportInstantJSON返回的高亮批注坐标来提取对应文本,具体步骤如下:

核心思路

  1. 从exportInstantJSON的结果中筛选出高亮类型的批注,获取其所在页码和矩形坐标数组。
  2. 对每个矩形坐标,调用getTextForRect方法提取该区域内的文本。
  3. 拼接多个矩形区域的文本,得到完整的高亮内容。

代码示例

// 导出Instant JSON数据
const instantJSON = await instance.exportInstantJSON();

// 筛选出所有高亮批注
const highlightAnnotations = instantJSON.annotations.filter(anno => anno.type === "highlight");

// 批量处理每个高亮批注
highlightAnnotations.forEach(async (highlight) => {
  const targetPage = highlight.pageIndex;
  let fullHighlightedText = "";

  // 遍历高亮批注的每个矩形区域
  for (const rectData of highlight.rects) {
    // 转换为PSPDFKit要求的Rect对象
    const textRect = new PSPDFKit.Rect(rectData.x, rectData.y, rectData.width, rectData.height);
    // 提取当前矩形内的文本
    const segmentText = await instance.getTextForRect(targetPage, textRect);
    // 拼接文本(可根据实际排版调整分隔符)
    fullHighlightedText += `${segmentText} `;
  }

  // 输出最终的高亮文本,去除末尾多余空格
  console.log("提取到的高亮文本:", fullHighlightedText.trim());
});

注意事项

  • exportInstantJSON返回的矩形坐标符合PDF标准坐标系(原点在页面左下角),无需额外转换,直接传入getTextForRect即可。
  • 如果高亮区域包含部分字符,getTextForRect会自动处理,尽可能提取完整的字符,避免截断单个文字。
  • 若遇到跨页的高亮批注,只需针对每个页面的矩形区域分别调用方法,再拼接结果即可。

内容的提问来源于stack exchange,提问作者adrianp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 05:05:14