扫描一段目录候选
const r = await mn.api('/documents/' + bookmd5 + '/toc-candidates?start=1&end=30');
if (r.pagesScanned === 0) { mn.log('这段全是留白,或页码越界'); return; }
mn.log(r.candidates.length, r.nextStart);{
"candidates": [
{
"page": 25,
"text": "第二章 车道的边际成本",
"height": 22,
"anchor": {
"x": 0.5,
"y": 0.12
}
}
],
"pagesScanned": 30,
"truncated": false,
"nextStart": 55
}文档与页面
扫描目录候选
在端上渲染、识别并跑版面模型,找出可以作为目录条目的标题候选。该接口开销较大, 扫描件上大约每页三秒。
单次跨度上限 60 页,页范围用 PDF 页序。同一页内的候选先后不是阅读顺序。
与读页文本共用两个扫描名额,名额满了会立即返回 429,不排队。
扫描页数达到单次跨度上限时 truncated 为真,此时仅返回已扫描的部分;pagesScanned 为 0 表示页范围越界或
整段为留白,该情形不返回下一页的起点。
GET
/
documents
/
{bookmd5}
/
toc-candidates
扫描一段目录候选
const r = await mn.api('/documents/' + bookmd5 + '/toc-candidates?start=1&end=30');
if (r.pagesScanned === 0) { mn.log('这段全是留白,或页码越界'); return; }
mn.log(r.candidates.length, r.nextStart);{
"candidates": [
{
"page": 25,
"text": "第二章 车道的边际成本",
"height": 22,
"anchor": {
"x": 0.5,
"y": 0.12
}
}
],
"pagesScanned": 30,
"truncated": false,
"nextStart": 55
}路径参数
文档的内容标识。取自 GET /study-sets/{topicid}/documents 响应里各项的 bookmd5、GET /ui-state 的 state.bookmd5,或 GET /search?scope=documents。
查询参数
起始页,PDF 页序。与结束页一同必填,缺任一项会被拒。
必填范围:
x >= 1结束页,PDF 页序。与起始页一同必填,单次跨度上限 60 页。
必填范围:
x >= 1