синтаксический анализ pdf-документа javascript

#javascript #pdf

#javascript #PDF

Вопрос:

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

Ответ №1:

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-файл встроен в тег object, и идентификатор этого элемента — «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"]);
  

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

Ответ №2:

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