PDFjs not working in safari, blank page. How to solve issue?

Viewed 43

I'm using pdfjs-dist "^2.16.105" to import pdf files into fabric as fabric.Images in my React Application. According to the http://fabricjs.com/import-pdf example, this all works in Chrome, Firefox, but does not work in Safari. I'm testing in Safari version 14.1.2. Here's the error in the console when loading react app.

SyntaxError: Unexpected private name #ensureObj. Cannot parse class method with private 
name.

I have read that safari versions before 14.5 does not support private classes. How can this problem be solved? In Safari React application doesn't start, I only see a blank screen.

This is my code

import * as PDFJS from "pdfjs-dist";
import * as pdfjsWorker from "pdfjs-dist/build/pdf.worker.entry";

PDFJS.GlobalWorkerOptions.workerSrc = pdfjsWorker;

...
 PDFJS.getDocument({
        data: pdfData,
      }).promise.then((a) => {
        a.getPage(1).then((page) => {
          let viewport = page.getViewport({ scale: window.devicePixelRatio });
          const canvas = document.createElement("canvas");
          const context = canvas.getContext("2d");
          canvas.height = viewport.height;
          canvas.width = viewport.width;

          const render_context = {
            canvasContext: context,
            viewport: viewport,
          };
          const renderTask = page.render(render_context);
          renderTask.promise.then(() => {
            const canvasImage = new fabric.Image(canvas, {});
            renderCanvasImg(canvasImage);
          });
        });
      });

0 Answers
Related