解析pdf文档javascript

解析pdf文档javascript,javascript,pdf,Javascript,Pdf,我在ASP.net的网页中嵌入了一个pdf文档,希望使用Javascript获取pdf文档中的特定字段…纯Javascript…网页Javascript将无法与pdf表单字段交互。但是,您可以将PDF表单发布到网页表单处理程序,然后获取表单字段中的值。PDF中的JavaScript可以在网页中调用JS,反之亦然,如果两者都已设置好。你可以看到Acrobat的 查看从第486页开始的HostContainer规范。在PDF中,您需要类似以下内容的脚本: var document = this; /

我在ASP.net的网页中嵌入了一个pdf文档,希望使用Javascript获取pdf文档中的特定字段…纯Javascript…

网页Javascript将无法与pdf表单字段交互。但是,您可以将PDF表单发布到网页表单处理程序,然后获取表单字段中的值。

PDF中的JavaScript可以在网页中调用JS,反之亦然,如果两者都已设置好。你可以看到Acrobat的

查看从第486页开始的
HostContainer
规范。在PDF中,您需要类似以下内容的脚本:

var document = this; // hurray for closures.
this.hostContainer.messageHandler = { onDisclose: function() {return true;},
  onMessage: function(msgArrayIgnored) {
    // build a JSON string of field/value pairs
    var outgoingMessage = "{ ";
    for (var i = 0; i < this.numFields; ++i) {
      var fldName = document.getNthFieldName(i);
      var fld = document.getField(fld);
      var val = fld.value;
      // you'll probably need to escape 'val' to be legal JSON
      outgoingMessage += fldName + ": \"" + val + "\";

      // stick in a comma unless this is the last field
      if (i != this.numFields-1) {
        outgoingMessage += ", ";
      }

    }
    outgoingMessage += "};";
    this.hostContainer.postMessage( [outgoingMessage] );
  };
var pdf = document.getElementById("pdfElem");
pdf.messageHandler = function(message) {
  var fldValPairs = eval(message);
  doStuffWithFieldInfo(fldValPairs);
};
稍后,当您想检查PDF的字段信息时,您会发布一条消息,PDF将调用PDF.messageHandler,其JSON字符串包装在一个数组中:

pdf.postMessage(["this string is ignored"]);
可能有一两个错误潜伏在那里的某个地方,但这将把你放在正确的轨道上