React-pdf: Alle Seiten gleichzeitig anzeigen

Erstellt am 6. Apr. 2017  ·  4Kommentare  ·  Quelle: wojtekmaj/react-pdf

Hallo @wojtekmaj , Gemeinschaft,

Vielen Dank für den Aufbau und die Pflege dieser Bibliothek!

Während der Verwendung des Moduls bin ich auf eine Benutzeroberfläche gestoßen, in der ich alle Seiten des PDFs scrollbar anzeigen muss. Momentan mache ich Folgendes:

  1. Erstellen Sie ein verstecktes Div, laden Sie die erste Seite und speichern Sie die Gesamtzahl der anzuzeigenden Seiten.
  2. Ordnen Sie von [1...this.state.totalPages] und rendern Sie <ReactPDF ... /> mit der entsprechenden Seitenzahl.

So sieht der Kartencode aus:

{(Array.from({length: this.state.totalPages}, (v, k) => k+1)).map((i) => {
              console.log(i)
              return (
                <div className='w-100 center tc mt3' key={i}>
                  <ReactPDF
                    width={screen.width*0.6}
                    file={'http://localhost:5000/assets/dance.pdf'}
                    pageIndex={i}
                    loading={this.renderLoader()}
                  />
                </div>
              );
            })}

Dies funktioniert, sendet jedoch mehrere Anforderungen (Anzahl der Seiten + 1) an die Ressourcendatei. Dies führt zu schlechten Erfahrungen, da die Ladezeit zu lang ist.

Gibt es dafür eine sauberere Lösung?

Vielen Dank.

enhancement question

Hilfreichster Kommentar

Hallo! @shivekkhurana! Damit Sie wissen, unterstützt die neueste Version 2.0.0 (Alpha) mehrere Seiten innerhalb einer <Document /> -Komponente - keine seltsamen Problemumgehungen erforderlich! :) Lass mich wissen was du denkst!

Alle 4 Kommentare

Ich konnte dies folgendermaßen lösen:

  1. Initialisieren Sie den Komponentenstatus mit {pdf: null, initialised: false, totalPages: null}
  2. Laden Sie die PDF-Datei mit xhr und speichern Sie sie im Status.
  3. Haben Sie eine Komponente, die nur rendert, wenn pdf nicht null ist und initialisiert wird, indem Sie das pdf lesen und die Einstellung auf true und totalPages initialisieren. Dieser Div befindet sich in einem versteckten Container.
  4. Ordnen Sie totalPages über 0 zu, wenn totalPages! == null ist, und rendern Sie jede Seite mithilfe des PDF-Status

Vielen Dank.

Hallo! @shivekkhurana! Damit Sie wissen, unterstützt die neueste Version 2.0.0 (Alpha) mehrere Seiten innerhalb einer <Document /> -Komponente - keine seltsamen Problemumgehungen erforderlich! :) Lass mich wissen was du denkst!

Warten Sie, aber müssen Sie wissen, wie viele Seiten es gibt, oder gibt es eine Möglichkeit, einfach alle vorhandenen Seiten anzuzeigen?

Du musst wissen. Und Sie wissen aus Document 's onLoadSuccess , überprüfen Sie Sample.jsx auf eine von vielen möglichen Implementierungen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen