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

推薦する

WeChatアプレットのスクロールビューの改行問題を解決する

今日、小さなプログラムを書いていたときに、スクロールビューを使用したのですが、スクロールビュー内のテ...

Windows 10 での MySQL 8.0.20 のインストールと設定方法のグラフィック チュートリアル

Win10システムにMySQL8.0.20をローカルにインストールし、個人的にテストして利用可能であ...

Docker コンテナ入門から夢中になるまで(推奨)

1. Docker とは何ですか?仮想マシンについては誰もが知っています。Windows に Li...

ウェブページ作成時に標準 HTML コードを使用する際のポイント

<br />多くのウェブサイト デザイナーが犯す最も一般的な間違いは、ウェブページが I...

ウェブページを開いて数秒後に他のページにリダイレクトする

これを実現するには、次のコードを追加するだけです。方法1: メタを使用する使用方法: <Met...

Docker で MySQL クラスターを構築する方法の例

Docker の基本的な手順:アップデートパッケージ yum -y アップデートDocker仮想マシ...

CSS カウンターを使用して数字の順序付きリストを美しく表示する方法

Web デザインでは、Web サイトに表示されるデータの構造とコンテンツをユーザーが明確に理解できる...

Linux のハードリンクとソフトリンクの原理と使用法の分析

Linux システムには、ファイル共有を解決するために使用できるリンク ファイルと呼ばれる種類のファ...

要素テーブルテーブルコンポーネントの複数フィールド(複数列)ソート方法

目次必要:発生した問題:解決する:必要:要素テーブル内の複数の列を並べ替えるには、日付の並べ替えをク...

nginxリバースプロキシのマルチポートマッピングの実装

コードの説明1.1 http:www.baidu.test.com のデフォルトは 80 で、リバー...

JavaScript のクロージャの詳細な説明

導入クロージャは JavaScript の非常に強力な機能です。いわゆるクロージャは関数内の関数です...

MySQL で遅いファジークエリを最適化する方法

目次1. はじめに: 2. 最初のアイデアはインデックスを構築することです3. 命令P.S. Lik...

XHTML 特殊文字コレクション

注意&#160;ノーブレークスペース = ノーブレークスペース、 iexcl ¡ &...

HTML+CSSで充電水滴融合特殊効果コードを実現

目次序文:成し遂げる:要約:まず効果を見てみましょう: 序文:このアイデアは、Bilibili のア...

CSS3 で六角形の境界線を実装するサンプルコード

一番外側の boxF は 120 度回転し、2 番目の boxS は -60 度回転し、3 番目の ...