Skip to content

文本选择

福昕 PDF SDK(Web)支持用户在 Viewer 中选择文本,并基于选区执行复制、创建文本标记注释或接入自定义业务工具。完整 UI(UIExtension)已内置文本选择后的浮动工具条;需要自定义工具条或读取选区数据时,可使用 TextSelectionTool 公开接口。

相关接口包括:

  • TextSelectionTool.getSelectionInfo():获取当前选中文本、所在页面和选区矩形。
  • TextSelectionTool.copy():复制当前选中文本。

获取选区信息

getSelectionInfo() 返回当前选中文本信息,包含选中文本、页面对象和每行选区矩形。

javascript
const selectionInfo = await textSelectionTool.getSelectionInfo();

if (selectionInfo) {
    console.log(selectionInfo.text);
    console.log(selectionInfo.page.getIndex());
    console.log(selectionInfo.rectArray);
}

rectArray 中的矩形可用于创建文本标记注释或业务侧定位。跨页选择时,选区信息可能包含多个页面的选区数据,处理时应按页面拆分。

复制选中文本

javascript
await textSelectionTool.copy();

复制到剪贴板通常需要在用户触发的事件中执行,并受浏览器安全策略限制。

与文本标记注释联动

完整 UI 的文本选择浮动工具条通常已提供高亮、下划线、删除线等操作。自定义流程中,可以先通过 getSelectionInfo() 获取选区文本和矩形,再根据 注释 文档中公开的 PDFPage.addAnnot() 接口创建对应文本标记注释。

创建或修改注释后,如需保存到文件,应按文档保存流程导出 PDF。

注意事项

  • 文本选择依赖 PDF 中是否存在可解析文本;扫描件通常需要 OCR 后才具备文本选择能力。
  • 选区矩形用于 Viewer 交互和注释创建时,应注意 PDF 坐标与 device pixels 的差异。
  • 如果目标是批量读取文本或字符位置,请使用 文本提取
  • 如果目标是按关键字查找并定位结果,请使用 文本搜索