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

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

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

1. npm install vue-print-nb --save をインストールします。

2. インストール後、main.jsファイルにインポートします。

import Print from 'vue-print-nb' Vue.use(Print); //登録

3. これで使えるようになりました

<div id="printTest">

  <p>月が山々を照らしている</p>

    <p>そよ風は川から吹いてくる</p>

</div>

<button v-print="'#printTest'">印刷</button>

4. リンク アドレス経由で印刷するには: window.location.href = airway_bill; airway_bill はリンク アドレスです。

5. コンテンツが完全に印刷されない場合は、印刷操作中に「詳細設定」をクリックし、ズームを設定します。

2番目の方法:プラグインをローカルに手動でダウンロードする

プラグインアドレス:

https://github.com/xyl66/vuePlugs_printjs

1. srcの下に新しいフォルダplugsを作成し、ダウンロードしたprint.jsをplugsフォルダに入れて、次の操作を行います。

'@/plugs/print' から Print をインポートします
Vue.use(Print) // <template> を登録する
  <セクションref="印刷">
    コンテンツを印刷する <div class="no-print">印刷しない</div>
  </セクション>
</テンプレート>
this.$print(this.$refs.print) // 使用法

2. 注意: DOM ノードを取得するには、ref を使用する必要があります。id または class で直接取得すると、webpack のパッケージ化とデプロイ後に出力されるコンテンツは空になります。

3. 印刷しない領域を指定する

方法1. 非印刷スタイルクラスを追加する

<div class="no-print">印刷しないでください</div>

方法2. カスタムクラス名

<div class="do-not-print-me-xxx">印刷しないでください</div>this.$print(this.$refs.print,{'no-print':'.do-not-print-me-xxx'}) // 使用

バッチ印刷

ここでのバッチ印刷は、実際には純粋な js 記述を使用しているので、コードに直接進みましょう。

<テンプレート>
    <div>
        <ul class="print-ul">
            <li v-for="(item,index) of tableData" :key="index" 
                :id="'printDiv' + インデックス" style="page-break-after:always;">
                <div>
                    <p>{{item.date}}</p>
                    <p>{{アイテム名}}</p>
                    <p>{{item.province}}</p>
                    <p>{{item.city}}</p>
                    <p>{{item.address}}</p>
                    <p>{{item.zip}}</p>
                </div>
            </li>
        </ul>
        <div @click="handlePrint">印刷</div>
    </div>
</テンプレート>

<スクリプト>
    エクスポートデフォルト{
        データ() {
            戻る {
                テーブルデータ: [{
                    日付: '2016-05-03'、
                    名前: 王小湖、
                    省: '上海'、
                    都市: 普陀区、
                    住所: '上海市普陀区金沙江路1518号'、
                    郵便番号: 200333
                }, {
                    日付: '2016-05-02'、
                    名前: 王小湖、
                    省: '上海'、
                    都市: 普陀区、
                    住所: '上海市普陀区金沙江路1518号'、
                    郵便番号: 200333
                }, {
                    日付: '2016-05-04'、
                    名前: 王小湖、
                    省: '上海'、
                    都市: 普陀区、
                    住所: '上海市普陀区金沙江路1518号'、
                    郵便番号: 200333
                }, {
                    日付: '2016-05-01'、
                    名前: 王小湖、
                    省: '上海'、
                    都市: 普陀区、
                    住所: '上海市普陀区金沙江路1518号'、
                    郵便番号: 200333
                }, {
                    日付: '2016-05-08'、
                    名前: 王小湖、
                    省: '上海'、
                    都市: 普陀区、
                    住所: '上海市普陀区金沙江路1518号'、
                    郵便番号: 200333
                }, {
                    日付: '2016-05-06'、
                    名前: 王小湖、
                    省: '上海'、
                    都市: 普陀区、
                    住所: '上海市普陀区金沙江路1518号'、
                    郵便番号: 200333
                }, {
                    日付: '2016-05-07'、
                    名前: 王小湖、
                    省: '上海'、
                    都市: 普陀区、
                    住所: '上海市普陀区金沙江路1518号'、
                    郵便番号: 200333
                }]
            }
        },
        メソッド: {
            ハンドルプリント() {
                var newWin = window.open(""); // 新しい空のウィンドウを開く for (var i = 0; i < this.tableData.length; i++) {
                    var imageToPrint = document.getElementById("printDiv" + i); // 印刷するコンテンツを取得します newWin.document.write(imageToPrint.outerHTML); // 印刷するコンテンツを新しいウィンドウに追加します}
                const styleSheet = `<style>li{list-style:none}</style>`; 
                newWin.document.head.innerHTML = styleSheet; //印刷コンテンツにスタイルを追加します newWin.document.close(); //IEブラウザで使用する場合はこの文を追加する必要があります newWin.focus(); //IEブラウザで使用する場合はこの文を追加する必要があります setTimeout(function() {
                    newWin.print(); //印刷 newWin.close(); //ウィンドウを閉じる }, 100);
            }
        }
    }
</スクリプト>

<スタイル>
    .print-ul {
        幅: 600ピクセル;
        リストスタイル: なし;
        境界線: 1px 実線 #e8e8e8;
    }
</スタイル>

要約する

これで、vue 印刷機能の実装に関するこの記事は終了です。より関連性の高い vue 印刷機能のコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Vueで印刷機能を実装する2つの方法
  • vue で vue-print.js を使用して複数ページの印刷を実現する
  • vue 印刷プラグイン vue-print-nb の実装コード
  • vue で vue-print-nb を使用してページを印刷する方法

<<:  Apache FlinkCEP でタイムアウトステータス監視を実装するための詳細な手順

>>:  MySQL サービスを完全に削除する方法 (レジストリをクリーンアップする)

推薦する

HTML テーブル マークアップ チュートリアル (29): セルのライト境界線の色属性 BORDERCOLORLIGHT

セルでは、明るい境界線の色を個別に定義できます。 > 基本構文<TD ボーダーカラーライ...

Vue で CSS カスタム変数を使用する方法

目次CSS カスタム変数機能は古くから存在していますが、実際の開発ではあまり使用されていません。その...

Vueはコンピュータカメラを呼び出して写真機能を実現します

この記事の例では、コンピュータカメラを呼び出して写真機能を実現するためのvueの具体的なコードを参考...

MySQL ロック制御同時実行方法

目次序文1. 楽観的ロックバージョンフィールドを追加する2. 悲観的ロック読み取りロック完全なテーブ...

Dockerでイメージを削除する方法

dockerでイメージを削除するコマンドはdocker rmiですが、このコマンドを実行してもイメー...

Next.js 入門チュートリアル

目次導入Next.jsプロジェクトを作成するNext.js プロジェクトを手動で作成するcreact...

Linux で g++ を使用してプログラムをコンパイルする際の -I (大文字の i)、-L (大文字の l)、-l (小文字の l) の機能の詳細な説明

初心者の Linux ユーザーとして、私は単純なgcc/g++操作を何度も使用してきましたが、少し複...

vue-tableは追加と削除を実装します

この記事では、vue-table の追加と削除の具体的なコードを参考までに紹介します。具体的な内容は...

Nginx proxy_pass の / スラッシュによって引き起こされた殺人事件の詳細な説明

背景nginx サーバー モジュールは 2 つのサーバーにプロキシする必要があるため、異なるサーバー...

Linux環境にDocker環境をインストールする(落とし穴なし)

目次インストールの前提条件ステップ1: システムの残りを確認してクリアし、Dockerの依存関係をイ...

ウェブインターフェースデザインでウェブサイトのスタイルガイドを作成する方法(画像とテキスト付き)

スタイル ガイドとは何でしょうか? 簡単に言えば、ストーリーを伝える方法を説明するドキュメントです。...

IE6/IE7/IE8/IE9/FF 向け CSS ハック (概要)

IE8.0の正式版をインストールしたので、基本的なCSS HACKをいくつかまとめてみました。We...

ドラッグ効果を実現するための js オブジェクト指向メソッド

この記事では、ドラッグアンドドロップをJSオブジェクト指向で実装するための具体的なコードを参考までに...

LinuxはRsync+Inotifyを使用してローカルとリモートのデータのリアルタイム同期を実現します。

0x0 テスト環境本社本番サーバーと支社バックアップサーバーはリモートデータバックアップが必要です...

js を使ってシンプルな虫眼鏡効果を実現

この記事の例では、参考までに簡単な虫眼鏡効果を実現するためのjsの具体的なコードを共有しています。具...