如何在WebViewer中初始化XOD? “DisplayModes”未定义

时间:2016-04-19 12:05:01

标签: pdftron

我正在尝试将XOD文档加载到PDFTron WebViewer中。据我所知,在文档和示例中,这应该是一个简单的“即插即用” - 操作 - 当你指向一个文件时它应该只是工作。理想情况下,在我的示例中,应该从服务中获取文档,如下所示:

{
    "a" :
    {
            "label": "Monthly",
            "URL": "xyz.com",
            "ArchTag": "M",
            "archData":
            {
                "Feb 2016":"20160229",
                "Jan 2016":"20160129",
                "Dec 2015":"20151231"
            }
    }
}

不幸的是我收到以下错误:

fetch('/myservice/GetXOD')
.then(function(data) {
    $(function() {
        var viewerElement = document.getElementById("viewer");
        var myWebViewer = new PDFTron.WebViewer({
            initialDoc: data.body
        }, viewerElement);
    });
});

我在Uncaught TypeError: Cannot read property 'DisplayModes' of undefined 中执行此操作的原因是因为我正在渲染Handlebars模板,并传递数据以在回调中实例化。但是,我已将代码隔离到一个“空”的HTML文档中,在下面的简化示例中,我只是指向PDFTron在页面加载时提供的XOD(这次没有fetch)。

fetch

遗憾的是,这会返回一个不同的错误(HTTP状态416)。

$(function() {
    var viewerElement = document.getElementById("viewer");
    var myWebViewer = new PDFTron.WebViewer({
        initialDoc: 'GettingStarted.xod' // Using the XOD provided by PDFTron
    }, viewerElement);
});

当我从localhost上的PDFTron运行示例时,会出现相同的错误。

我完全失去了我应该如何进一步调试 - 所有样本都假设一切都在开箱即用。

我应该注意到,我实际上可以在localhost上正常运行PDF,但在服务器上却没有。 XOD在服务器和localhost上都存在问题。

1 个答案:

答案 0 :(得分:0)

我很遗憾听到你在运行样品时遇到麻烦。

您的错误消息显示416表示"请求范围不可满足"。也许您的开发服务器不支持字节范围请求(https://en.wikipedia.org/wiki/Byte_serving)。

您可以尝试传递选项streaming: true吗?当流式传输成立时,您只需要预先请求整个文件,这不应该是任何服务器的问题,但如果文件很大,则WebViewer会出现问题,因为它需要完全下载和解析在开始时很慢。