问题描述
我正在为我的学校进行一个项目,我正在尝试创建一个工具,可以帮助教师使用作业评分者更快地对作业进行评分。我正在考虑尝试找到一种方法,以区分普通文本与通过Kami创建的文本/作品。 Kami是Google的扩展程序,我的学校正在使用它来允许学生提交有关已创建的PDF的作品。我计划查找每个卡美语教科书,并按照老师给出的答案进行选择。但是,我不知道是否可以扫描文档并仅挑选出Kami文本。谢谢。
解决方法
-
要直接访问 PDF,必须使用内置PDF查看器(example for getSelectedText)的未记录内部命令。您可以尝试使用Chromium的source code中的其他命令来提取整个文本,亲自检查一下。
-
另一种方法是从URL(使用标准
XMLHttpRequest
或fetch
,more info)下载PDF,然后使用一些JavaScript库来解析文件。
这里是 Kami 的 CEO。这是一个很好的问题,如果您联系我,我很乐意为您提供帮助(电子邮件是 kamiapp.com 上的名字)
但是为了回答您的问题,当我们将文本框嵌入到 PDF 中时,Kami 创建了 PDF-spec compliant text annotations。您可以判断它是用 Kami 创建的,因为它的注释对象在遗留情况下还包括字典键“KAMI:comment_b64”或“KAMI:comment”。它的值包括一个 Base64 编码的字符串,您可以对其进行解码以获取注释的 JSON 对象。
本质上,您可以通过在 Javascript 中执行此操作来解码它的数据:
var b64str = dict.get('KAMI:comment_b64');
var kamiComment = JSON.parse(decodeURIComponent(escape(atob(b64str))));
或者用这个:
var kamiComment = JSON.parse(dict.get('KAMI:comment'));