Vue-pdf implementiert eine Online-Vorschau von PDF-Dateien

Vue-pdf implementiert eine Online-Vorschau von PDF-Dateien

Vorwort

In den meisten Projekten werden Sie auf eine Online-Vorschau von PDF-Dateien stoßen. Das Projekt verwendet Element UI und wird mit vue-pdf implementiert.

Abhängigkeiten installieren

npm install --save vue-pdf

Verwandte Parameter

Parametereinführung:

  • URL: Der Pfad der PDF-Datei, der ein lokaler oder ein Online-Pfad sein kann.
  • Seite: die Nummer der aktuell angezeigten Seite, zum Beispiel die erste Seite Seite=1
  • Drehen: Drehwinkel, z. B. bedeutet 0 keine Drehung, +90 und -90 bedeuten horizontale Drehung.
  • Fortschritt: Der Ladefortschritt der aktuellen Seite, im Bereich von 0 bis 1. Wenn er 1 ist, bedeutet dies, dass die aktuelle Seite vollständig geladen wurde.
  • Seite geladen: Rückruffunktion für erfolgreiches Laden der Seite, selten verwendet.
  • num-pages: Gesamtseitenzahl
  • Fehler: Rückruf für Ladefehler
  • Link angeklickt: Links innerhalb einer eigenständigen PDF-Datei werden ausgelöst.
  • drucken Dies ist die Druckfunktion. Hinweis: Google Chrome zeigt verstümmelte Zeichen an, was mit der Schriftart zusammenhängt.

erreichen

<Vorlage>
    <div>
        <el-Zeile>
            <el-button @click="onPreview" size="small">Vorschau</el-button>
        </el-row>
        <el-dialog title="Vertragsanhang Vorschau anzeigen" :visible.sync="viewVisible" center width="60%" @close='closePreview'>
            <el-row :gutter="20">
                <span>Insgesamt {{pageCount}} Seiten, aktuelle Seite {{pdfPage}}</span>
                <el-button type="text" size="mini" @click.stop="previousPage">Vorherige Seite</el-button>
                <el-button type="text" size="mini" @click.stop="nextPage">Nächste Seite</el-button>
            </el-row>
            <div>
                <pdf :src="src" :page="pdfPage" @num-pages="Seitenanzahl = $event" @page-loaded="pdfPage = $event" style="Anzeige: Inline-Block; Breite: 100 %"></pdf>
            </div>
        </el-dialog>
    </div>
</Vorlage>
<Skript>
PDF aus „vue-pdf“ importieren
Store aus '@/store/' importieren
Standard exportieren {
    Komponenten: {
        pdf
    },
    Daten(){
        zurückkehren {
            viewVisible: false,
            quelle: null,
            pdfSeite: 1,
            Seitenanzahl: 0,
            Token: store.getters.access_token,
        }
    },
    Methoden:{
        beiVorschau(){
            diese.src = pdf.createLoadingTask({
                URL: „http://localhost:8082/file/demo.pdf“,
                httpHeaders: {Authorization:'Bearer '+ dieses.token}
            });
            dies.src.promise.then(pdf => {
                Dies.viewVisible = true;
            });
        },
        Vorschau schließen(){
            diese.pdfSeite = 1;
        },
        vorherigeSeite(){
            let p = diese.pdfSeite
            p = p > 1 ? p-1 : diese.Seitenanzahl
            diese.pdfSeite = p
        },
        nächsteSeite(){
            let p = diese.pdfSeite
            p = p < diese.Seitenanzahl ? p+1 : 1
            diese.pdfSeite = p
        }
    }
}
</Skript>

Wirkung

Notiz

1. URL

URL ist der Dateiadressenpfad

diese.src = pdf.createLoadingTask({
    URL: „http://localhost:8082/file/demo.pdf“,
});

2. Setzen Sie den Anforderungsheader

Sie können Parameter wie Token über httpHeaders festlegen

httpHeaders: {Authorization:'Bearer '+ dieses.token}

3. Quelle

Das ist wichtiger. Viele Beiträge im Internet lauten wie dieser.

dies.src.then(pdf => {
    Dies.viewVisible = true;
})

Meldet TypeError: this.src.then ist keine Funktion

TypeError: this.src.then ist keine Funktion
    bei VueComponent.onPreview (index.vue?6ced:241)
    beim Klicken (index.vue?aaff:261)
    bei invokeWithErrorHandling (vue.runtime.esm.js?2b0e:1854)
    bei VueComponent.invoker (vue.runtime.esm.js?2b0e:2179)
    bei invokeWithErrorHandling (vue.runtime.esm.js?2b0e:1854)
    bei VueComponent.Vue.$emit (vue.runtime.esm.js?2b0e:3888)
    bei VueComponent.handleClick (element-ui.common.js?5c96:9413)
    bei invokeWithErrorHandling (vue.runtime.esm.js?2b0e:1854)
    bei HTMLButtonElement.invoker (vue.runtime.esm.js?2b0e:2179)
    bei HTMLButtonElement.original._wrapper (vue.runtime.esm.js?2b0e:6917)

Die richtige Antwort ist diese

dies.src.promise.then(pdf => {
    Dies.viewVisible = true;
});

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Vue implementiert Online-Vorschau von PDF-Dateien und Download (pdf.js)
  • Vue implementiert die Online-Vorschaufunktion von PDF-Dokumenten
  • Vue-Plugin-Entwicklung: So verwenden Sie pdf.js, um eine Online-Vorschau von PDF-Dokumenten auf Mobiltelefonen zu realisieren
  • Vue-Beispielcode für die Online-Vorschau von Office-Dateien
  • Vue implementiert eine Online-Vorschau von PDF-Dateien (mithilfe von pdf.js/iframe/embed)
  • vue Beispielcode zur Verwendung von vue-pdf zur Implementierung einer PDF-Onlinevorschau
  • vue-pdf realisiert Online-Dateivorschau
  • Online-Vorschau von drei gängigen Dateitypen in Vue-Projekten (PDF-/Word-/Excel-Tabellen)

<<:  So lesen Sie die regionalen Informationen einer IP mithilfe des Nginx- und GeoIP-Moduls

>>:  MySQL Community Server 5.6 Installations- und Konfigurations-Tutorial unter Windows 8

Artikel empfehlen

JavaScript zum Implementieren einer zufälligen Namensaufruf-Webseite

JavaScript schreibt eine zufällige Roll-Call-Webs...

JavaScript-Selektorfunktionen querySelector und querySelectorAll

Inhaltsverzeichnis 1. querySelector fragt ein ein...

Einführung in die Verwendung von Requisiten in Vue

Vorwort: In Vue können Props verwendet werden, um...

Binäre Installation von MySQL 5.7.23 unter CentOS7

Die Installationsinformationen im Internet sind u...

【HTML-Element】Detaillierte Erklärung des Tag-Textes

1. Verwenden Sie grundlegende Textelemente, um In...

So behandeln Sie einen Überlauf numerischer MySQL-Typen

Lassen Sie mich Ihnen nun eine Frage stellen. Was...

Bringen Sie Ihnen bei, wie Sie die Zeigerposition in Javascript erhalten

Die Methode zum Abrufen der Zeigerposition in Jav...

Eine Zusammenfassung der Gründe, warum MySQL keinen Datumsfeldindex verwendet

Inhaltsverzeichnis Hintergrund erkunden Zusammenf...

JavaScript zum Erzielen von Feuerwerkseffekten (objektorientiert)

In diesem Artikel wird der spezifische Code für J...

CentOS 7.5 stellt Varnish-Cache-Serverfunktion bereit

1. Einführung in Varnish Varnish ist ein leistung...

Mehrere Möglichkeiten zum einfachen Durchlaufen von Objekteigenschaften in JS

Inhaltsverzeichnis 1. Selbstaufzählbare Eigenscha...

HTML löst das Problem ungültiger Tabellenbreiteneinstellungen

Wenn Sie den Stil „table-layer:fixed“ für eine Ta...