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

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

ページ上で PDF をプレビューすると、一部のファイルは印刷またはダウンロードできません。現時点では、Windows に付属の PDF を使用して顧客のニーズを満たすことは困難です。そのため、特殊な状況下で PDF ファイルのプレビューをサポートする別の方法が必要です。ここでは、pdf.js ファイルを導入する形式を使用して目的を達成します。

ステップ1: pdf.jsをダウンロードする

pdf.js ファイルをインポートする

アドレスは次のとおりです: http://mozilla.github.io/pdf.js/getting_started/

2番目のステップはVueを導入することです

ダウンロードしたファイルをpiblicのルートディレクトリに置きます

ステップ3: 使用

メインのアドレスは「/build/generic/web/viewer.html?file="+href」です。ここで、href はリクエストバックエンドから返されたファイルパス、またはバックエンドから返されたファイルストリームをフロントエンドで解析した後に生成されたファイルパスです。先頭に /build/generic/web/viewer.html?file= が追加されます。アドレスは、導入した pdf.js ファイルのパスです。/build/generic/web/viewer.html を直接記述することもでき、直接検索に行きます。以下では、フロントエンド解析ファイル ストリームを使用してアドレス プレビューを生成します。

プレビューメソッド window.open("/build/generic/web/viewer.html?file="+href);

アクシオス({
                メソッド: 'get'、
                url:url,
                ヘッダー: {
                    「トークン」:認証、
                },
                レスポンスタイプ: 'blob',
            }).then(応答 => {
                type_ = type_.toLowerCase();
                (type_ == "docx") の場合 {
                    that._type_ = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
                } そうでない場合 (type_ == "doc") {
                    that._type_ = "application/msword"
                } そうでない場合 (type_ == "gif") {
                    that._type_ = "image/gif"
                } そうでない場合 (type_ == "jpeg" || type_ == "jpg") {
                    that._type_ = "image/jpeg"
                } そうでない場合 (type_ == "png") {
                    that._type_ = "image/png"
                } そうでない場合 (type_ == "pdf") {
                    that._type_ = "アプリケーション/pdf"
                } そうでない場合 (type_ == "txt") {
                    that._type_ = "text/plain;charset=utf-8'"
                } そうでない場合 (type_ == "xls") {
                    that._type_ = "application/vnd.ms-excel" 
                } そうでない場合 (type_ == "xlsx") {
                    that._type_ = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
                }そうでない場合 (type_ == "zip") {
                    that._type_ = "application/zip"
                } そうでない場合 (type_ == "ppt") {
                    that._type_ = "application/vnd.ms-powerpoint"
                } そうでない場合 (type_ == "pptx") {
                    that._type_ = "application/vnd.openxmlformats-officedocument.presentationml.presentation"
                }
               if(type_ == "pdf"){
                    var blob = new Blob([response.data], { type: that._type_ })
                    var href = window.URL.createObjectURL(blob); //ダウンロード リンクを作成します window.open("/build/generic/web/viewer.html?file="+href);
                }
            })

やっと

PDF ファイルのダウンロード、印刷、その他の機能を無効にしたい場合、最も簡単な方法は、インポートしたファイルで viewer.html を見つけることです。パスは、build の下の generic フォルダーの下の web フォルダーにある viewer.html です。

この HTML で対応するダウンロードされた DOM を見つけて、display:none を設定するだけです。コメントアウトしないでください。コメントアウトするとエラーが報告されます。下図のように、赤いボックスでは 1 つはダウンロード用、もう 1 つは印刷用なので、非表示にします。

これも安全ではないかと尋ねられた場合は、ページに表示しないようにクライアントと話し合うことができます。ページに表示されるものはすべてスクリーンショットでキャプチャされる可能性があり、それは必ず安全ではないからです。

これで、vue を使用して pdf.js で PDF をプレビューする方法についての記事は終わりです。vue を使用して pdf.js で PDF コンテンツをプレビューする方法の詳細については、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

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

<<:  MySQL の「特殊キーが長すぎます」の解決策

>>:  パゴダパネルとドッカーを使用して Gogs をインストールするプロセス全体

推薦する

Harborを使用してプライベートDockerリポジトリを構築する方法

目次1. オープンソースの倉庫管理ツール Harbor 2 インストール2.1 DockerとDoc...

Vue におけるキープアライブ マルチレベル ルーティング キャッシュの問題

目次1. 問題の説明2. 原因分析3. 解決策4. 処理1. 問題の説明調整センターでは、最後の 2...

MySQL 5.7.20 圧縮版のダウンロードとインストールの簡単なチュートリアル

1. ダウンロードアドレス:参考: http://dev.mysql.com/downloads/m...

MySQLに挿入する前にデータが存在するかどうかを確認する方法

ビジネスシナリオ: 訪問者の訪問状況を記録する必要があるが、繰り返し記録することはできない挿入する前...

MySQL Null は 5 つの問題を引き起こす可能性があります (すべて致命的)

目次1. カウントデータが失われる解決2. 明確なデータ損失3.データ損失を選択解決4. Nullポ...

JS 日付コントロール My97DatePicker の基本的な使い方

My97DatePicker は非常に柔軟で使いやすい日付コントロールです。使い方はとても簡単です。...

Vue の proto ファイルの関数呼び出しのグラフィカルな説明

1. protoをコンパイルするすべての .proto ファイルを保存するために、src フォルダー...

MySQL は正常に起動するがポートをリッスンしない場合の解決策

問題の説明MySQL が正常に起動しました。以下に示すように、 ps -ef |grep mysql...

MySQL 8.0.12 簡単インストールチュートリアル

この記事では、MySQL 8.0.12のインストールチュートリアルを参考までに紹介します。具体的な内...

MySQLデータ移行方法とツールの分析

この記事は主にMySQLデータ移行方法とツールの分析を紹介します。サンプルコードを通じて詳細に紹介さ...

MySQL の一般的な日付比較および計算関数

MySql での時間比較の実装unix_timestamp() unix_timestamp 関数は...

Linux sedコマンドの使用

1. 機能紹介sed (Stream EDitor) は、コンテンツを 1 行ずつ処理するストリーム...

MySQLトランザクションの基本的な学習と経験の共有

トランザクションは、論理的な操作のグループです。この操作グループを構成する各ユニットは、成功するか失...

Vue3 プロジェクトで WeChat 認証ログインをエレガントに実装する方法

目次序文準備する実装のアイデアコードについて要約する序文WeChat 認証ログインは、WeChat ...

MySQL 5.7.20 解凍版のインストールとルートパスワードの変更に関するチュートリアル

1. MySQL アーカイブ (解凍版) をダウンロードするURL: https://downloa...