Ошибка при попытке изменить загруженный PDF-файл во встроенном файле
Я использую 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);
Это прекрасно работает ... однажды. Если я снова перетащу файл, когда он попадет в часть рендеринга, изменится только имя файла поверх вставки, а не фактическое визуализированное содержимое.
1 ответ
Решение
Вам нужно будет воссоздать объект AdobeDC.View перед загрузкой нового документа. Я предполагаю, что это связано с тем, что могут быть неразрешенные обещания, если операция требует времени для разрешения, например, загрузка аннотаций или выполнение поиска. Ваш новый код может выглядеть так ...
let reader = new FileReader();
let name = this.pdfFile.name;
reader.onloadend = function(e) {
let filePromise = Promise.resolve(e.target.result);
let dcView = new AdobeDC.View({
clientId: ADOBE_KEY,
divId: div
});
dcView.previewFile({
content: { promise: filePromise },
metaData: { fileName: name }
});
};
reader.readAsArrayBuffer(this.pdfFile);