我使用的是 Adobe PDF Embed API,可以在用户选择后成功显示 PDF。当我的应用程序启动时,我会初始化一个 DC View 对象:
let dcView = new AdobeDC.View({
clientId: ADOBE_KEY,
divId: div
});
在用户拖动文件后,我使用文件阅读器向其抛出承诺:
let reader = new FileReader();
let name = this.pdfFile.name;
reader.onloadend = function(e) {
let filePromise = Promise.resolve(e.target.result);
dcView.previewFile({
content: { promise: filePromise },
metaData: { fileName: name }
});
};
reader.readAsArrayBuffer(this.pdfFile);
这非常有效......一次。如果我再次拖动文件,当它到达渲染部分时,只会更改嵌入顶部的文件名,而不是实际渲染的内容。
答案 0 :(得分:2)
您需要在加载新文档之前重新创建 AdobeDC.View 对象。我猜这是因为如果一个操作需要一段时间来解决,比如加载注释或执行搜索,可能会有未解决的承诺。您的新代码可能如下所示...
Shop & stop
23452