2015-03-02 4 views
2

Я пытаюсь разобрать PDF-документ, и это хорошо. PDF создается в Adobe FormCentral и содержит один элемент формы (поле даты).PDF.js получить позиции/размеры элементов AcroForm

головка:

<script type="text/javascript" charset="utf-8" src="jquery.js"></script> 
<script type="text/javascript" charset="utf-8" src="common.js"></script> 
<script type="text/javascript" charset="utf-8" src="pdfjs/build/pdf.js"></script> 
<script type="text/javascript" charset="utf-8" src="mscripts.js"></script> 
    <script type="text/javascript"> 
    $(document).ready(function() { 
     loadPDFJS(); 
    }); 
</script> 

тела:

<div id="viewer"></div> 

ЯШ:

function loadPDFJS(){ 
    var canvasContainer = document.getElementById('viewer'); 
    PDFJS.workerSrc = 'build/pdf.worker.js'; 

    PDFJS.getDocument('mpdf.pdf').then(function(pdf) { 
     pdf.getPage(1).then(renderPage); 

     function renderPage(page) { 
      console.log(page); 
      var xyz = window.getComputedStyle(canvasContainer); 
      var w = parseInt(xyz.width.replace("px", "")); 

      var viewport = page.getViewport(1); 
      var scale = w/viewport.width; 
      var scaledViewport = page.getViewport(scale); 

      var canvas = document.createElement('canvas'); 
      var context = canvas.getContext('2d'); 
      canvas.height = scaledViewport.height; 
      canvas.width = scaledViewport.width; 

      var renderContext = { 
       canvasContext: context, 
       viewport: scaledViewport 
      }; 
      page.render(renderContext).then(function() { 
       document.getElementById('viewer').appendChild(canvas); 
      }); 
     } 
    }); 
} 

И этот код действительно делает PDF. Но здесь возникает проблема. Мне нужно знать размеры и позиции элементов (в данном случае только один). Я просмотрел Демо на странице PDF.js github и зарегистрировал объект страницы. В документах PDF, содержащих текст, я заметил, что зарегистрированный PDFPage содержит тексты (однако я не могу извлечь какие-либо измерения), но элементы формы, похоже, не разбираются вообще. Может быть, они являются частью фона?

Все, что я могу найти библиотеку Java для доступа к этим AcroForm поля, here, но я предпочел бы просто придерживаться одной библиотеки (предпочтительно pdf.js)

Вопрос: Как я могу извлекать позиции и размеры всех элементов формы PDF-документа с использованием PDF.js?

ответ

4

Старый вопрос, но он заслуживает ответ для тех, кто в конечном итоге здесь:

page.getAnnotations().then(function(items) { 
    console.log(items); 
}); 

Деталь должна быть массивом, и каждый элемент должен иметь прямоугольник. Существует также эта вилка (вилки) из pdf.js, что расширяет функциональные возможности включают в себя поля формы, чтобы разрешить ввод пользователя из PDF визуализации:

https://github.com/EvilTrev/pdf.js

+0

: о удивительной вилке! спасибо, что поделились этим! – Nicolocodev

Смежные вопросы