Открытые URL-адреса файлов в PDFNet / PDFTron WebViewer

Я пытаюсь использовать PDFNet / PDFTron WebViewer в приложении на основе Electron. Пользователь должен иметь возможность выбрать файл в локальной файловой системе для открытия. Но при передаче URL file: // для initialDoc я всегда получаю ошибку Error retrieving file: file:///Users/mat/Desktop/document-generator/xod/Anchoring/Anchoring.xod?_=-22,. Received return status 0..

Есть ли у кого-нибудь идея, как это можно решить? Копирование файла в папку рядом с index.html и использование относительного URL-адреса не вариант, поскольку документы PDF довольно большие.


person Mato    schedule 10.06.2016    source источник


Ответы (1)


Свойство initialDoc, похоже, не поддерживает схему file:// URI. Однако вы можете открывать PDF-файлы прямо в браузере, используя File API HTML5, а затем используя функцию (hidden?) loadLocalFile:

<input type="file" id="files" name="files[]" multiple />
<output id="list"></output>

<script>
$(function() 
{
   var viewerElement = document.getElementById("viewer");
   window.myWebViewer = new PDFTron.WebViewer({
       documentId: "pdf",
       documentType: "pdf",
       path: "lib",
       type: "html5",
       initialDoc: "GettingStarted.pdf"
   }, viewerElement);
});

document.getElementById('files').addEventListener('change', handleFileSelect, false);
function handleFileSelect(e) 
{
  var files = e.target.files; // FileList object
  console.log("Loading file " + files[0].name);
  window.myWebViewer.getInstance().loadLocalFile(files[0], {});
}

</script>

Такая функциональность также демонстрируется в онлайн-демонстрации WebViewer. Обратите внимание, что documentId и documentType должны быть установлены в "pdf", чтобы это работало.

person Tomer    schedule 12.06.2016
comment
Спасибо за совет. Но это работает только со средством просмотра html5. При использовании программы просмотра html5mobile метод loadLocalFile отсутствует, а getInstance возвращает undefined. Может быть, есть способ также открыть XOD из локальной файловой системы и, что более важно, также в режиме html5mobile? - person Mato; 14.06.2016