我正在尝试将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上都存在问题。
答案 0 :(得分:0)
我很遗憾听到你在运行样品时遇到麻烦。
您的错误消息显示416表示"请求范围不可满足"。也许您的开发服务器不支持字节范围请求(https://en.wikipedia.org/wiki/Byte_serving)。
您可以尝试传递选项streaming: true
吗?当流式传输成立时,您只需要预先请求整个文件,这不应该是任何服务器的问题,但如果文件很大,则WebViewer会出现问题,因为它需要完全下载和解析在开始时很慢。