知叶PDF
← 返回
SDK文本抽取搜索

文本读取与定位:搜索、高亮、抽取的底层

SDK 与开发知叶PDF 团队阅读约 1 分钟

应用里那些看起来简单的文本功能——全文搜索、选中高亮、把文字抽出来做分析——底层都依赖同一件事:把页面的文字连同它的位置读出来。

文本层涉及的三组接口

  • 页面文本(ipdf_pagetext):文本的读取与定位——读出页面上的文字,并知道它在页面上的位置。方法清单见页面文本的接口文档。
  • 页面对象(ipdf_pageobject):按元素访问页面,文字、图像、路径都在这一层被枚举出来。
  • 段落(ipdf_paragraph):把文字识别成可编辑的段落并读写字符属性——这一层是编辑的前提,单独见文字编辑那篇。

一个功能是怎么拼出来的

以「搜索关键词并高亮」为例:

  1. 用文本读取取到页面文字;
  2. 用定位信息拿到文本片段在页面上的坐标;
  3. 按坐标在页面上画高亮——高亮属于标注,见标注那篇。

三件事分属不同接口组,但缺一不可:没有坐标,就画不到正确的位置上。

自研时容易踩的坑

  • 不是所有 PDF 都有文字层。扫描件里只有图像,文本接口读不出内容——这类文档要先走 OCR,那是另一条链路。
  • 阅读顺序不等于坐标顺序。分栏排版按坐标排序会读乱,要靠基于版面的还原——这也是「段落识别」存在的原因。
  • 子集字体与编码映射。读出来的字符可能是乱码,需要按字体携带的编码信息还原。

常见问题

能只处理某一页吗?

可以。页面是访问单位。

能直接拿到表格结构吗?

文本层给的是文字与位置;表格结构需要基于版面自行推断。SDK 里面向具体业务的专用接口不在公开的 12 个头文件范围内,有这类需求请联系我们。

抽出来的文字怎么用?

由你的应用决定——检索、归档、交给下游分析都可以,SDK 只负责把文字与坐标如实交给你。

接口在哪看?

SDK API 参考,接口说明保留头文件里的英文原文,便于和代码里的注释对上。

来源:知叶PDF 官方文档。能力范围以 SDK 接口文档为准,更新于 2026 年 9 月。