панорамирование увеличенного изображения - PullRequest
0 голосов
/ 03 октября 2018

Я рендеринг изображения в SVG с использованием библиотеки pdfjs, и это работает, тогда я бы хотел использовать svg-pan-zoom lib для включения масштабирования.

import * as panZoom from "svg-pan-zoom";

private renderPage(page, scale) {
      const viewport = page.getViewport(scale);
      this.container.removeChild(document.getElementById('the-svg'));
      this.container.appendChild(this.createSvgDiv());
      const svgDiv = document.getElementById('the-svg');

    svgDiv.style.width = viewport.width + 'px';
      svgDiv.style.height = viewport.height + 'px';
      page.getOperatorList()
        .then(function (opList) {
          var svgGfx = new PDFJS.SVGGraphics(page.commonObjs, page.objs);
          return svgGfx.getSVG(opList, viewport);
        })
        .then(function (svg) {
          svgDiv.appendChild(svg);
          //after this uccurs error
          setTimeout(() => { panZoom(svg)
          }, 6000)
        });
    }

тайм-аут, чтобы убедиться, что рендеринг завершен, для рендеринга изображения PDF требуется около 1 с, затем по истечении тайм-аута я получаю эту ошибку

core.js:1449 ERROR Error: Cannot get SVG.
    at Object.getSvg (utilities.js:95)
    at svgPanZoom (svg-pan-zoom.js:747)
    at Painter.ts:59
    at t.invokeTask (polyfills.js:3)
    at Object.onInvokeTask (core.js:4751)
    at t.invokeTask (polyfills.js:3)
    at r.runTask (polyfills.js:3)
    at e.invokeTask (polyfills.js:3)
    at i.isUsingGlobalCallback.invoke (polyfills.js:3)
    at n (polyfills.js:3)

библиотекасайт: https://www.npmjs.com/package/svg-pan-zoom

...