Vue で pdfjs を使用して PDF ファイルをプレビューする方法

Vue で pdfjs を使用して PDF ファイルをプレビューする方法

序文

プロジェクトの作成プロセスでは、PDF ファイルが使用されることがあります。PDF ファイルを表示したい場合、まず PDF ファイルをダウンロードし、その後、コンピューターにインストールされている PDF を開くための専用ソフトウェアを使用して PDF ファイルを表示しますか?ユーザーにソフトウェアをインストールさせないという要件があったらどうなるでしょうか? 結局のところ、ソフトウェアのインストール方法やソフトウェアを開くために何が必要かを知らないユーザーがまだたくさんいます。そうですね、そういう需要があるなら実現するしかないですね。結局、この理由を否定することはできないですから。

考える

せっかく話題になったので、使い方を考えてみましょう。 pdf を使用する必要があるためです。 js で操作できるライブラリ ファイルはありますか? Baidu で検索するだけで、今日の主役である pdfjs が見つかります。

ライブラリディレクトリの解析とダウンロード

計画ができたので、それを検討してみましょう。まず、このライブラリのファイルをダウンロードする必要があります。ダウンロード アドレス: ここをクリックしてダウンロードしてください。このページには 2 つのバージョンがあり、1 つは古いバージョンと互換性があり、実際の状況に応じてダウンロードできます。

ダウンロードしたコードの構造は次のとおりです。

ここには 2 つのフォルダがあります:

  • ビルドこれはPDFコアファイルです
  • ウェブの例

使い方

使用方法は 2 つあります。1 つはコア ライブラリ ファイルを使用して PDF プレビューを独自に実装する方法、もう 1 つは提供されている例を使用して PDF ファイルをプレビューする方法です。ここでは、PDF ファイルをプレビューするために、示された例を使用します。興味がある場合は、コア ファイルを使用して実装する方法を学習できます。

ファイルの場所

まず、ダウンロードしたファイルを以下のように Vue プロジェクトの静的ディレクトリに配置する必要があります。

実際の通話

必要な場所で呼び出すには、次のメソッドを使用します。

var url = encodeURIComponent(window.location.origin+'/other/202101/dc88623a-74c4-49c4-bc95-7e34d9cf6163.pdf')
window.open(window.location.origin + window.location.pathname+'static/pdfjs/web/viewer.html?file='+url)

上記の PDF アドレスは、ローカルに置いたパスです。ここでのパスは相対パスでも絶対パスでもかまいません。上記は絶対パスです。

このとき、次の効果を確認できます。

質問

この PDF ファイルのアドレスと現在ダウンロードされているライブラリ ファイルのアドレスが同じドメインにある場合、大きな問題は発生しません。異なるドメインにある場合は、クロスドメインの問題を解決する必要があります。ここで解決する必要があることが 1 つあります。それは、ダウンロードしたライブラリ ファイルです。viewer.js ファイルで次のコンテンツ コメントを見つけます。

上の写真の赤いボックス内の内容に注釈を付けます。サーバーがダウンロード アドレスを提供する場合は、iframe ネストを使用して解決できます。

要約する

実際、ドメイン間の知識は、非常に役立つ場合があります。上記で使用されています。最初に作業を開始したときは、取り出すことができませんでした。後になって、ドメイン間でダウンロードできないことがわかりました。現在、さらに多くの使用法と質問があり、誰でも気軽に質問することができます。

上記は、pdfjs in vue を使用して pdf ファイルをプレビューする方法の詳細です。pdfjs in vue を使用して pdf ファイルをプレビューする方法の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Vue で HTML ページから高解像度の PDF ファイルを生成する方法
  • pdf.js を使用して Vue で PDF ファイルをプレビューする方法
  • Vue は PDF ファイルのオンライン プレビューを実装します (pdf.js/iframe/embed を使用)
  • Vue での携帯電話番号とメールの定期検証と 60 秒で検証コードを送信する例
  • VueはPDFファイルをメールボックスに送信するサンプルコードを実装します

<<:  MySQL にテキストと画像を保存する方法

>>:  仮想マシンの複製に関するVirtual Boxチュートリアル図

推薦する

HTML タグ sup と sub の応用の紹介

HTML タグ: 上付き文字HTML では、<sup> タグは上付き文字のテキストを定義...

DockerコンテナにRedisをデプロイする手順の紹介

目次1 つの Redis 設定ファイル2 Dockerコマンドの開始3 docker-compose...

HTML ハイパーリンク内の中国語文字化けの分析と解決

Vm 内のハイパーリンク URL は、Get 要求のパラメータとして中国語と連結する必要があります。...

vue+elementuiは、共有箇条書きボックスの追加と変更の完全なコードを実装します。

目次1. 新しいII. 変更element-ui は、Ele.me のフロントエンド チームが開発者...

Ubuntu 18.04 に MySQL をインストールする (グラフィカル チュートリアル)

ヒント: 以下の操作はすべて root 権限で実行されます。 # MySQL がインストールされてい...

MySQL の int(n) の後の n はどういう意味ですか?

int(1) の長さ 1 は、許可されたストレージ幅を表していないことはすでにご存知かもしれません...

熟練デザイナーの7つの原則(1):フォントデザイン

まあ、あなたはデザインの達人かもしれませんし、あるいはそれは大げさすぎるかもしれませんが、少なくとも...

WebStormはVue3統合APIのソリューションを正しく識別できません

1 問題の説明Vue3 の統合 API は、defineComponent やその他の関数が認識でき...

Nginx ベースの Mencached キャッシュ構成の詳細な説明

導入Memcached は分散キャッシュ システムです。Memcached には認証とセキュリティ制...

Vueウォッチの監視方法の概要

目次1. Vueにおけるwatchの役割はその名の通り、監視の役割です。 2. このオブジェクトのプ...

JavaScript はモーダルボックスのドラッグ効果を実現します

これはモーダル ボックスのドラッグのケースです。ここで実装する関数は次のとおりです。 1. ポップア...

VueはOpenLayersを使用してTiandi MapとAmapを読み込み

目次1. 世界地図1. VueにOpenLayersをインストールする2. アマップ1. 世界地図1...

ubuntu20.04 上の CLion2020.1.3 での ROS のインストールと設定の詳細な説明

1. CLionをダウンロード、インストール、アクティベートするオンラインで提供されるチュートリアル...

MySQLにおけるテーブルインデックスの定義方法と導入

概要インデックスは、テーブル内の 1 つ以上の列に基づいて DBMS によって特定の順序で作成される...

ReactプロジェクトでのTypeScriptの実装

目次1. はじめに2. 使用方法ステートレスコンポーネントステートフルコンポーネント制御コンポーネン...