1. 获取当前视图所在的页码信息
var pdfviewer = await pdfui.getPDFViewer();
var docRender = pdfviewer.getPDFDocRender();
var curPageIndex = docRender.getCurrentPageIndex();
2. 获取当前PDF的文档对象
var pdfdoc = pdfviewer.getCurrentPDFDoc();
3. 获取当前页面的页面对象
var curPage = await pdfdoc.getPageByIndex(curPageIndex);
4. 删除当前页面的所有注释 或 特定类型注释
- 删除当前页面的所有注释
curPage.removeAllAnnot();
- 删除当前页面的特定类型注释
如果当前页有多种类型的注释(图章、高亮、下划线等等),可以使用getAnnots接口获取当前页所有注释,过滤出特定类型的注释,然后使用removeAnnotById 或 removeAnnotByObjectNumber 删除特定注释。
curPage.getAnnots().then(annots => {
annots.forEach(annot => {
if (annot.getType() === annotType) {
curPage.removeAnnotByObjectNumber(annot.getObjectNumber());
}
});
});
示例代码如下:
/*入参类型:字符串
入参值:待删除的注释类型,如“highlight”——高亮注释,"ink"——铅笔注释。如果入参值为“all”,则代表删除当前页的所有注释
*/
async function deleteAnnotsOnCurPage(annotType) {
// 获取当前视图所在的页码信息
var pdfviewer = await pdfui.getPDFViewer();
var docRender = pdfviewer.getPDFDocRender();
var curPageIndex = docRender.getCurrentPageIndex();
// 获取当前PDF的文档对象
var pdfdoc = pdfviewer.getCurrentPDFDoc();
// 获取当前页面的页面对象
var curPage = await pdfdoc.getPageByIndex(curPageIndex);
// 删除当前页面的所有注释 或 特定类型注释
curPage.getAnnots().then(annots => {
if (annots.length === 0) return;
if(annotType ==='all') {
// 删除当前页面的所有注释
curPage.removeAllAnnot();
}else{
// 删除当前页面的特定类型注释
annots.forEach(annot => {
if (annot.getType() === annotType) {
curPage.removeAnnotByObjectNumber(annot.getObjectNumber());
}
});
}
});
}