React-pdf: ドキュメント全体が読み込まれる前に最初のページを表示する-範囲ヘッダーをサポート

作成日 2019年06月26日  ·  3コメント  ·  ソース: wojtekmaj/react-pdf

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

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

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

私たちのプロジェクト( issuedemo )では、表示しているページのみをロードし、ドキュメント全体がロードされる前に最初のページをレンダリングしたいと思います。

私の理解では、PDF.jsはRangeヘッダーreact-pdf APIは、 fileプロパティにPDFDataRangeTransportオブジェクトを含めることが可能であると説明しています。 ただし、これらのRangeヘッダーを実際に送信するために何をすべきかわかりません。

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

  • [x]ソースPDFがWeb用に最適化されているかどうかを確認します
  • [x]ホスティングサービスがHTTP範囲ヘッダーをサポートしているかどうかを確認します

環境

  • Chrome 75
  • MacOS 10.14.5
  • React-PDF 4.0.5
  • React-スクリプト3.0.1
  • React 16.8.6
question

最も参考になるコメント

PDF.jsの開発者によると、PDF.jsは範囲応答のgzipエンコーディングをサポートしていないため、明示的に設定する必要があります。 PDF.jsのドキュメントによると、カスタムヘッダーを設定できます。 DocumentはoptionsオブジェクトをPDFjs.getDocumentに渡すので、これは機能するはずです。

<Document
  options={{
    httpHeaders: {
      'Accept-Encoding': 'Identity',
    }
  }}
  file={"https://example.com/some.pdf"}
>

しかし、そうではないので、私はまだ何が起こっているのかを調査しています。 pdf.jsの問題のようです。

全てのコメント3件

こんにちは、
ええ、PDFDataRangeTransportはサポートされるべきです。React-PDFはそれをpdf.jsに渡すだけで、他にはあまりありません。 このトピックは、PDFDataRangeTransportオブジェクトの作成で見つかりました。

必要な動作を実現する最も簡単な方法は、URLをfile propとして渡すことです。 これは問題なく機能するはずです: https

返信ありがとうございます(そして、さらに言えば、素晴らしいライブラリ)@wojtekmaj!

残念ながら、私はURLをファイルprop( sourcedemo )として渡しますが、ドキュメント全体がフェッチされた後にのみレンダリングされます。

また、PDFファイルのリクエストには範囲ヘッダーが表示されません。

文字列を渡した場合、おそらくこの条件は実際には真ではありませんか?

    // File is PDFDataRangeTransport
    if (file instanceof PDFDataRangeTransport) {
      return { range: file };
    }

PDF.jsの開発者によると、PDF.jsは範囲応答のgzipエンコーディングをサポートしていないため、明示的に設定する必要があります。 PDF.jsのドキュメントによると、カスタムヘッダーを設定できます。 DocumentはoptionsオブジェクトをPDFjs.getDocumentに渡すので、これは機能するはずです。

<Document
  options={{
    httpHeaders: {
      'Accept-Encoding': 'Identity',
    }
  }}
  file={"https://example.com/some.pdf"}
>

しかし、そうではないので、私はまだ何が起こっているのかを調査しています。 pdf.jsの問題のようです。

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