разобрать pdf документ javascript - PullRequest
1 голос
/ 27 апреля 2011

У меня есть PDF-документ, встроенный в веб-страницу в ASP.net, и я хочу получить определенное поле внутри PDF-документа, используя Javascript ... plain Javascript ...

Ответы [ 2 ]

2 голосов
/ 29 апреля 2011

JavaScript в PDF может вызывать JS на веб-странице и наоборот, если ОБА настроены для этого. документацию Acrobat вы можете найти здесь .

Ознакомьтесь со спецификацией HostContainer, начиная со страницы 486. В 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] );
  };

В HTML нужно настроить что-то похожее.Предположим, ваш pdf встроен в тег объекта, а идентификатор этого элемента - «pdfElem».Ваш HTML-скрипт может выглядеть примерно так:

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"]);

Возможно, где-то там скрывается одна или две ошибки, но это приведет вас на правильный путь.

0 голосов
/ 27 апреля 2011

Веб-страница JavaScript не сможет взаимодействовать с полями формы PDF. Однако вы можете отправить PDF-форму в обработчик форм веб-страницы, а затем получить значения в полях формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...