【问题标题】:Open file URLs in PDFNet / PDFTron WebViewer在 PDFNet / PDFTron WebViewer 中打开文件 URL
【发布时间】:2016-06-12 21:53:16
【问题描述】:

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

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

【问题讨论】:

    标签: javascript pdftron pdfnet


    【解决方案1】:

    initialDoc 属性似乎不支持file:// URI 方案。但是,您可以使用 HTML5 的 File API 直接在浏览器中打开 PDF,然后使用(隐藏?)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 online demo 也演示了这样的功能。请注意,documentIddocumentType 必须设置为 "pdf" 才能正常工作。

    【讨论】:

    • 感谢您的提示。但这似乎只适用于 html5 查看器。使用 html5mobile 查看器时,没有方法 loadLocalFile 并且 getInstance 返回未定义。有没有办法也可以从本地文件系统打开 XOD,更重要的是,也可以在 html5mobile 模式下打开?
    猜你喜欢
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多