如何用JavaScript回复PDF中的批注?Acrobat JS代码求助
Acrobat JavaScript 实现批注回复的正确方式
你的代码核心思路没问题,但在属性设置时机和细节上有疏漏,以下是修正后的可运行代码及关键说明:
修正后的代码
// 获取文档中的第一个批注 var annots = this.getAnnots(); if (annots && annots.length > 0) { var parentAnnot = annots[0]; // 创建并关联回复批注 var replyAnnot = this.addAnnot({ page: parentAnnot.page, type: parentAnnot.type, contents: "你的评论很正确。", // 调整回复批注位置,避免与原批注重叠(可根据需求修改) rect: [parentAnnot.rect[0], parentAnnot.rect[1]-30, parentAnnot.rect[2], parentAnnot.rect[3]-30], inReplyTo: parentAnnot.name, refType: "R" }); // 切换到对应页面,刷新显示新批注 this.pageNum = parentAnnot.page; } else { console.println("当前文档中没有可回复的批注"); }
关键修正点说明
- 增加空值判断:必须先检查
annots是否存在且包含元素,避免因文档无批注导致的数组越界错误 - 属性初始化时机:将
inReplyTo和refType直接写入addAnnot的配置参数中,而不是事后赋值。Acrobat JS API要求关联回复的属性需在批注创建时初始化,事后修改可能无法正确建立关联 - 位置调整:通过
rect参数设置回复批注的位置,避免与原批注重叠,提升可读性 - 页面刷新:切换到批注所在页面,确保新创建的回复批注能立即显示
内容的提问来源于stack exchange,提问作者user11892736
相关产品推荐
相关产品推荐

