是否可以区分PDF上的Kami文本和普通文本

问题描述

我正在为我的学校进行一个项目,我正在尝试创建一个工具,可以帮助教师使用作业评分者更快地对作业进行评分。我正在考虑尝试找到一种方法,以区分普通文本与通过Kami创建的文本/作品。 Kami是Google的扩展程序,我的学校正在使用它来允许学生提交有关已创建的PDF的作品。我计划查找每个卡美语教科书,并按照老师给出的答案进行选择。但是,我不知道是否可以扫描文档并仅挑选出Kami文本。谢谢。

解决方法

  1. 要直接访问 PDF,必须使用内置PDF查看器(example for getSelectedText)的未记录内部命令。您可以尝试使用Chromium的source code中的其他命令来提取整个文本,亲自检查一下。

  2. 另一种方法是从URL(使用标准XMLHttpRequestfetchmore 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'));

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...