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チュートリアル図

推薦する

React Router で履歴リダイレクトを使用する方法

react-routerでは、コンポーネント内のジャンプは<Link>で使用できます。し...

vxe-table を使用して vue で編集可能なテーブルを作成するプロセス

プロジェクトには、オンラインで編集する必要があるテーブルがあります。最初は、要素の el-table...

Dockerイメージ作成の完全なプロセス

目次序文作成手順CentOSベースイメージを作成するコンテナを作成してカスタマイズするカスタムコンテ...

Div はフラッシュを覆います。フラッシュ透過方式により、フラッシュ上に DIV レイヤーを配置できます。

2つのタイプがあります: (異なるブラウザ) 1. IEブラウザで利用可能コードをコピーコードは次の...

CSS ポインターイベント属性の使用に関する詳細な説明

フロントエンド開発では、ユーザーと直接やり取りするため、ユーザーが操作がスムーズで快適だと感じ、ネイ...

Dockerを使用してJenkinsをインストールする方法

目次1. イメージをプルする2. ローカルデータボリュームを作成する3. コンテナを作成する4. J...

MySQL 接続制御プラグインの紹介

目次1. 接続制御プラグイン(connection_control)の紹介1.1 connectio...

MySQL の結合フィールドの Concat()

目次1. はじめに2. 本文2.1 フィールドの連結2.2 フィールドでの算術計算の実行1. はじめ...

Amoeba を使用して MySQL データベースの読み取り/書き込み分離を実装する方法の詳細な説明

MySQL には読み取りと書き込みを分離するアーキテクチャが多数あります。Baidu のそれらのほと...

HTML メタタグの使用の概要 (推奨)

メタタグ機能METAタグは、HTMLタグのHEAD領域にある重要なタグです。文書の文字セット、使用言...

高さ:100% が機能しないのはなぜですか?

高さ:100% が機能しないのはなぜですか?この知識は不人気ではありませんが、使用する際には混乱する...

WeChatアプレット認証ログインを処理するエレガントな方法

序文WeChat ミニプログラム プロジェクトでユーザー情報を取得し、ユーザー ログインを実装する場...

計算機機能を実現するjsバージョン

この記事の例では、計算機機能を実装するためのjsの具体的なコードを参考までに共有しています。具体的な...

Jenkinsを使用してプロジェクトを別のホストにデプロイするプロセス

環境ホスト名IPアドレス仕えるジェンキンス192.168.216.200トムキャット、ジェンキンスサ...

SSH経由でローカルLinux仮想マシンに接続するプロセスを記録する

実験環境:物理マシン Windows 10 x64物理NIC情報IPv4 アドレス: 192.168...