使用Javascript将PDF表单转换为自我更正的作业

时间:2013-04-18 18:13:41

标签: javascript forms validation pdf

我是一名教师,我们正在寻求尽可能无纸化。我学会了(通过在这里搜索并询问上一个问题)如何使用Javascript来个人验证PDF表单的响应。我相信在提交之前有一些方法可以验证整个表单,但我还没有找到如何做到这一点。表格实际上是PDF文件,而不是网页。

我的问题是如何处理验证和提交。有没有办法使用javascript(或任何其他方法):

  1. 点击按钮验证整个表格(这将是学生完成的整个作业)?
  2. 使用相同的点击,将收到的答案和“得分”提交给电子表格?我的班级有一个网站和域名,我可以通过cPanel完全修改以处理提交,如果我必须以某种方式在那里设置它。
  3. 理想情况下,我想要提交和分数,因此学生无法验证,根据验证更改所有答案,然后提交完美的作业。

    替代方案是学生填写表格,验证并让学生打印出他们的分数。我能看到的唯一问题是学生重新加载PDF并在验证后更改答案。

    有任何见解或建议吗?

1 个答案:

答案 0 :(得分:1)

您可以将JavaScript添加到提交按钮并使其显示分数,然后将表单字段值提交到您的网站。

这不是万无一失的。 Adobe Acrobat / Reader中的Javascript错误控制台可能会显示有关您的Javascript代码的泄漏信息。有几种PDF处理工具可以从PDF中提取JavaScript代码。

因此,最好的选择是使用一个简单的提交按钮,并将表单字段数据提交给服务器。在服务器上,您可以使用一个脚本来评估提交的表单字段数据,并以FDF流的形式将消息发送回Adobe Reader。 FDF流可以包含分数。


  Response.ContentType = "application/vnd.fdf"
  Response.Write "%FDF-1.2" & VbCrLF & _
                 "1 0 obj<< /FDF << /Status (" & sAcroResponse & ") >>      >>endobj" & VbCrLF & _
                 "trailer" & VbCrLF & _
                 "<< /Root 1 0 R >>%%" & VbCrLF

以上脚本位于Classic ASP中。消息(sAcroResponse)将显示在Adobe Reader中,而不是在浏览器中。您可以将此脚本调整为Web服务器支持的任何语言。