Vue は PDF ファイルのオンライン プレビューを実装します (pdf.js/iframe/embed を使用)

Vue は PDF ファイルのオンライン プレビューを実装します (pdf.js/iframe/embed を使用)

序文

現在、私はコースウェア PPT のオンライン プレビューを必要とする高品質のコースに取り組んでいます。私たちのアイデアは、オンライン プレビュー用に PPT を PDF に変換することです。そのため、PDF のオンライン プレビューを実現する方法が問題となります。

実装の過程では、効果をより良く見せるためにさまざまな方法を試し、最終的に最も効果があった pdf.js を選択しました。

実施方法:

1: インラインフレーム

プレビュー効果を実現するために、iframe を使用して PDF を Web ページに埋め込みます。アイデアは優れており、実装も簡単ですが、表示が残酷です...

1 行のコードは簡潔で明確であり、Google Chrome を開いたときの効果は問題ありませんが、欠点も非常に明白です。 ! ! !

<iframe src="http......" 幅="100%"></iframe>

欠点:

(1)iframeは標準化されておらず、IEではもう使われていないため、IEと互換性がない

(2)ポップアップウィンドウをダウンロード! ! !プレビューを開くたびにダウンロードポップアップウィンドウがポップアップ表示され、ユーザーエクスペリエンスが非常に悪くなります。

2: 埋め込む

Embed と iframe は似たような感じがします。使い方は同様にシンプルで明確で、IE を開いたときの効果も良好ですが、ダウンロード ポップアップ ウィンドウの干渉は避けられません。

 <埋め込み src="http......" 幅="100%" 高さ="400" />

3: pdf.js (効果が最高)

実装手順:

(1)pdf.jsファイルをダウンロードする

pdf.js ファイルは多数あるため、コア ファイルのみを使用すればよいため、コア ファイルを抽出します (クロスドメイン エラーは処理されています)。クリックしてコアファイルをダウンロード

(2)コアファイルを静的にインポートする

(3)使用

<テンプレート>
	<iframe :src="pathUrl" width="100%"></iframe>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
	データ () {
	   戻る {
	     パスURL:''
	   }
	 },
	 マウントされた(){
      this.pathUrl = '../../../../../static/pdf/web/viewer.html?file=' + encodeURIComponent('https://lidn02.o%BA.pdf') // 前に紹介した pdf ファイル内の viewe.html を見つけて、+ pdf アドレスを取得します},
 }
</スクリプト>

(4)エフェクトはすべての主要ブラウザと互換性があります。

(5)PDFをストリームとして受信する

上記の効果は達成されましたが、コンソールを開くとエラー ラインがまだ表示されます。

この問題を解決するために、またはクロスドメインに遭遇したときに、PDF ファイルはストリームの形式で受信され、表示されます。

マウントされた(){
	this.getData(PDF アドレス)
}

//ファイルストリームを受信し、アドレスを変換して表示します getData(url){
  axios.get(url,{
    レスポンスタイプ:'blob',
  })
    .then(res => {
      blob = new Blob([res.data], {type: "application/vnd.ms-excel"}) とします。
      objectUrl = URL.createObjectURL(blob) とします。
      this.pathUrl = '../../../../../static/pdf/web/viewer.html?file=' + オブジェクト URL
    })
    .catch(エラー => {
      コンソール.log(エラー)
    })
}

要約する

Vue の PDF ファイルのオンライン プレビューに関するこの記事はこれで終わりです。Vue の PDF ファイルのオンライン プレビューに関するより詳しい情報は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue は PDF ファイルのオンライン プレビューとダウンロードを実装します (pdf.js)
  • Vue は PDF ドキュメントのオンライン プレビュー機能を実装しました
  • Vue プラグイン開発: pdf.js を使用してモバイル フォンで PDF ドキュメントのオンライン プレビューを実現する方法
  • Office ファイルのオンライン プレビュー用の Vue サンプル コード
  • vue vue-pdf を使用して PDF オンライン プレビューを実装するためのサンプル コード
  • Vue-pdfはPDFファイルのオンラインプレビューを実装します
  • vue-pdf はオンラインファイルプレビューを実現します
  • Vue プロジェクトでよく使用される 3 つのファイル タイプ (pdf/word/excel テーブル) のオンライン プレビュー

<<:  Mysql: 定義者として指定されたユーザー ('xxx@'%') が存在しません 解決策

>>:  Linuxカーネルがプロセスアドレス空間に侵入し、プロセスメモリを変更する方法

推薦する

Windows 上の Docker にさまざまなソフトウェアをインストールする詳細なプロセス

1. MySQLをインストールする # docker で mysql をダウンロード docker ...

VUE 応答性原理の詳細な説明

目次1. 応答原理の基盤2. コアオブジェクト: Dep と Watcher 3. 依存関係を収集し...

Nginx サービス クイック スタート チュートリアル

目次1. Nginx の紹介1. Nginx とは何ですか? 2. Nginx を使用する理由3. ...

Expressプロジェクトファイルディレクトリの説明と詳細な機能の説明

app.js: スタートアップファイル、またはエントリファイルpackage.json: プロジェク...

Vue 開発プロジェクトで Font Awesome 5 を使用する方法

目次依存関係をインストールする構成使用1.アイコン検索ページに入る2. 使用したいアイコンの英語名を...

Vue印刷機能を実装する2つの方法の概要

方法1: npm経由でプラグインをインストールする1. npm install vue-print-...

Windows 10 で MySQL 8.0.12 の解凍バージョンをインストールして構成する方法 (グラフィック チュートリアル付き)

この記事では、MySQL 8.0.12 の解凍版のインストールと設定方法を記録し、皆様と共有します。...

Alipay の Java 決済インターフェースを開発するための詳細な手順

目次最初のステップステップ2ステップ3ステップ4 Alipay 決済インターフェースへの接続に関する...

MySQL のソート関数 field() の詳細な例

序文私たちの日常の開発プロセスでは、ソートが頻繁に使用され、そのような要求がある場合もあります。たと...

いくつかの CSS3 タグの短縮形 (推奨)

border-radius: CSS3 丸い角構文: border-radius: 25px;楕円...

Vueタイムラインコンポーネントの使い方

この記事の例では、参考までにvueタイムラインコンポーネントの具体的な実装コードを共有しています。具...

vue-cli4.5.xはプロジェクトを素早く構築します

1. vue-cliをインストールする vue.js で vue.js を実行します。 2. プロジ...

vue + Electron でデスクトップ アプリケーションを作成するためのサンプル コード

1.vueパッケージングここでは、vueネイティブパッケージングコマンドを使用してvueプロジェクト...

MySQL インデックスのクイックガイド

MySQL インデックスの確立は、MySQL の効率的な操作にとって非常に重要です。インデックスによ...

React Nativeの起動プロセスの詳細分析

はじめに: この記事ではreact-native-cliで作成したサンプル プロジェクト (Andr...