1

その後には進ま.thenず、エラーは発生しません。

これが私の呼び出しコードです:

function loadPage(base64Data, pageIndex) {
  var pdfData = base64ToUint8Array(base64Data); 
  // this gets hit
  PDFJS.getDocument(pdfData).then(function (pdf) { 
    // never gets here
    pdf.getPage(pageIndex).then(function (page) {
      var scale = 1;
      var viewport = page.getViewport(scale);
      var canvas = document.getElementById('pdfPage');
      var context = canvas.getContext('2d');
      canvas.height = viewport.height;
      canvas.width = viewport.width;
      page.render({ canvasContext: context, viewport: viewport });
    });
  });
}

function base64ToUint8Array(base64) {
  var raw = atob(base64); // convert base 64 string to raw string
  var uint8Array = new Uint8Array(raw.length);
  for (var i = 0; i < raw.length; i++) {
    uint8Array[i] = raw.charCodeAt(i);
  }
  return uint8Array;
}

ある時点でそれは機能しました。デバッガーでステップ実行すると、ステップインできますが、それはPDFJS.getDocument私の頭をはるかに超えています。

私の base64Data は次のようになりJVBERi0x...g==ます。これは base64 でエンコードされた PDF ドキュメントです。

4

2 に答える 2

0

これを解決するには、追加する必要がありました

PDFJS.disableWorker = true;

loadPage私の機能の最初に。

PDF.js を使用してブラウザー内で直接 PDF ファイルを表示から、

PDF.js は、HTML5 の Web ワーカーの概念を内部的に使用してリクエストを処理します。このステートメントが false に設定されている場合、Web ワーカーのインスタンスが作成されます。Web ワーカーは分離されたスレッドで実行されます。Web ワーカーの詳細については、http://www.html5rocks.com/en/tutorials/workers/basics/を参照 してください。

于 2015-12-03T16:08:29.340 に答える