始める前に-チェックリスト
何を達成しようとしていますか?
バージョン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
環境
ブラウザのアドレスフィールドに貼り付けることと、React-PDFのfile
小道具にURLとして渡すことの両方で、間違いなく機能しました。 たぶんあなたはそれを2回「base64-ing」しているのでしょうか?
いいえ、このpdfデータは文字列と同じです。Documentに渡します。
PDFjsが何をしているのかを知る方法はありますか?
くそー、このキャッシング。
Chromeですべてのサイトキャッシュを削除すると、機能するようになりました。
あなたの速い答えをありがとう!
他の人に役立つ場合は、ワーカーのURL(pdfjsLib.GlobalWorkerOptions.workerSrc = "....")がメインのpdfを指すように誤って設定したときにも、同じ解決されないpromiseの動作が発生しました。誤ってpdf.worker.jsファイルではなくjsファイル。
最も参考になるコメント
他の人に役立つ場合は、ワーカーのURL(pdfjsLib.GlobalWorkerOptions.workerSrc = "....")がメインのpdfを指すように誤って設定したときにも、同じ解決されないpromiseの動作が発生しました。誤ってpdf.worker.jsファイルではなくjsファイル。