Adobe PDF Embed apis.gotoLocation() заставляет PDF обновляться

Adobe PDF Embed всегда перезагружает PDF-файл, а не просто переходит на нужную страницу (как это происходит при изменении номера страницы в iframe). Это можно обойти?

Используемый код:previewFilePromise.then(adobeViewer => {

          adobeViewer.getAPIs().then(apis => {
            apis.gotoLocation(n)
                    .then(() => console.log("Success"))
                    .catch(error => console.log(error));
     });

});

1 ответ

Я не видел такого поведения, но я подхожу к проблеме немного по-другому. Я получаю API только один раз, а затем повторно использую объект, как показано ниже. Ссылка на работающий пример находится после фрагмента кода.

       var viewerAPI = null;
 function showPDF(urlToPDF) {
      var adobeDCView = new AdobeDC.View({
           clientId: clientId,
           divId: "embeddedView"
      });
      previewFilePromise = adobeDCView.previewFile(
           {
                content: { promise: fetchPDF(urlToPDF) },
                metaData: { fileName: urlToPDF.split("/").slice(-1)[0] }
           },
           viewerOptions
      );
      previewFilePromise.then((adobeViewer) => {
           adobeViewer.getAPIs().then((apis) => {
                viewerAPI = apis;
           });
      });
 }

 function goToPage(pageNum) {
      viewerAPI.gotoLocation(parseInt(pageNum));
 }

Полный Кодепен

Другие вопросы по тегам