0

我正在尝试在基于 Electron 的应用程序中使用 PDFNet / PDFTron WebViewer。用户应该能够从本地文件系统中选择要打开的文件。但是当我传递一个 file:// URL 时,initialDoc我总是得到错误Error retrieving file: file:///Users/mat/Desktop/document-generator/xod/Anchoring/Anchoring.xod?_=-22,. Received return status 0.

有没有人知道如何解决这个问题?将文件复制到靠近index.html并使用相对 URL 的文件夹中不是一种选择,因为 PDF 文档非常大。

4

1 回答 1

0

initialDoc属性似乎不支持file://URI 方案。但是,您可以使用 HTML5 的 File API 直接在浏览器中打开 PDF,然后使用 (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"为才能正常工作。

于 2016-06-12T13:53:16.103 回答