React-pdf: PDF.jsgetDocumentpromiseが返されません

作成日 2019年04月02日  ·  4コメント  ·  ソース: wojtekmaj/react-pdf

始める前に-チェックリスト

  • [/] READMEのドキュメントを読みました
  • [/]サンプルスイートとテストスイートをチェックして、実際の基本的な実装を確認しました
  • [/]この質問がまだ行われていないかどうかを確認しました

何を達成しようとしていますか?

バージョン3.0.5から4.0.5にアップグレードしました。 更新後、PDFファイルは表示されなくなり、「読み込み中」のままになります。

試した解決策を説明してください

PDFファイルをbase64-dataとして表示しますが、プレーンバイトも試しました。 提供されている通知フックを使用すると、ソースデータが正しく読み込まれるというフィードバックが得られます。
コードをデバッグすると、Document.jsと次のコードが表示されます。

  cancellable = (0, _utils.makeCancellable)(loadingTask.promise);
  _this.runningTask = cancellable;
  _context.next = 23; // until here is everything fine
  return cancellable.promise; // this promise is never resolved 

追加情報

私はあなたのlibを簡単に使用します:

import { Document, Page } from "react-pdf/dist/entry.webpack";
 <Document
          file={ isDataBase64 ? `data:application/pdf;base64,${file}` : file }
          loading="Das PDF wird geladen..."
          onLoadSuccess={ ::this.onDocumentLoadSuccess } // show additional buttons for zoom
          className="pdfDocument"
          renderMode="svg"
        >
            <Page
              key={ `page_${1}` }
              pageNumber={ 1 }
              className="pdfPage"
              renderMode="svg"
              scale={ pageScale } />
        </Document>

サンプルPDFを添付しました。 コピーしてブラウザに貼り付けると機能します。 <Document file={<pdfdata here>}>のパラメーターで使用しても機能しません。
samplePDF_base64.txt

環境

  • ブラウザ(該当する場合)[例:Chrome 57、Firefox 59]:ChromeおよびFF最新
  • React-PDFバージョン[例3.0.4]:4.0.5
  • Reactバージョン[例:16.3.0]:16.3.2
  • Webpackバージョン(該当する場合)[例4.16.2]:3.8.1
question

最も参考になるコメント

他の人に役立つ場合は、ワーカーのURL(pdfjsLib.GlobalWorkerOptions.workerSrc = "....")がメインのpdfを指すように誤って設定したときにも、同じ解決されないpromiseの動作が発生しました。誤ってpdf.worker.jsファイルではなくjsファイル。

全てのコメント4件

ブラウザのアドレスフィールドに貼り付けることと、React-PDFのfile小道具にURLとして渡すことの両方で、間違いなく機能しました。 たぶんあなたはそれを2回「base64-ing」しているのでしょうか?

obraz

いいえ、このpdfデータは文字列と同じです。Documentに渡します。
PDFjsが何をしているのかを知る方法はありますか?

くそー、このキャッシング。

Chromeですべてのサイトキャッシュを削除すると、機能するようになりました。

あなたの速い答えをありがとう!

他の人に役立つ場合は、ワーカーのURL(pdfjsLib.GlobalWorkerOptions.workerSrc = "....")がメインのpdfを指すように誤って設定したときにも、同じ解決されないpromiseの動作が発生しました。誤ってpdf.worker.jsファイルではなくjsファイル。

このページは役に立ちましたか?
0 / 5 - 0 評価