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/CSSにおける記号論の詳細な説明

この記事では、ソシュールの言語哲学などの理論に基づいて、CSS の class 属性は不要であると主...

myisamchk および mysqlcheck ツールを使用して破損した MySQL データベース ファイルを迅速に修復する方法

サーバーのデータベース ハード ディスク領域がいっぱいだったため、大量のデータの書き込みに失敗し、「...

Centos7 での MySQL のインストールに関するチュートリアル

最近、自宅サーバーにクラウドディスクを導入する予定なので、一連の環境構築作業を始めました。MySQL...

MySQL 5.7.21 winx64 グリーンバージョンのインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 5.7.21のインストールと設定方法を記録しています。具体的な内容は以下のと...

Mysql通信プロトコルの詳細な説明

1.Mysql接続方法MySQL 通信プロトコルを理解するには、まず MySQL サーバーへの接続に...

MySQL inndbジョイントインデックスを正しく使用する方法を徹底的に理解するためのケーススタディ

最近確認された5件のデータを照会するビジネスがあります。 `id`、`title` を選択 `th_...

MySQL 5.7.17 圧縮バージョンのインストールノート

この記事では、参考までにMySQL 5.7.17圧縮版のインストール手順を紹介します。具体的な内容は...

Webpack-cliが正常にインストールされたら、詳細についてはwebpack -vエラーケースを確認してください。

目次質問1. webpack webpack-cliをインストールする2. webpackのバージョ...

3分でUbuntu 16.04を初期化し、Java、Maven、Docker環境をデプロイする

Fast-Linux プロジェクト アドレス: https://gitee.com/uitc/Fas...

163 メールボックスログインボックスインタラクティブデザインの改善体験と共有

LOFTER のコンテストで、ログイン ボックスを再設計できると言及されているのを見ました。過去 2...

CentOS7 で MySQL データベースにリモート接続できない理由と解決策

序文最近、仕事で問題が発生しました。 Centos7 システムでは MySQL にリモート接続できな...

Vueはコードのハイライトを実現するためにモナコを使用しています

Vue 言語と要素コンポーネントを使用して、コード コンテンツの入力を必要とし、ハイライト表示が可能...

Web ページの HTML コードの説明: 順序付きリストと順序なしリスト

このセクションでは、HTML のリスト要素について学習します。リストは、Web サイトのデザインにお...

Vueはmockjsを使用してシミュレートされたデータケースの詳細を生成します

目次プロジェクトにmockjsをインストールするVueプロジェクトでmockjsを使用する基本的なプ...

mysqlは時間を自動的に追加し、時間を自動的に追加および更新する操作を実装します

時間フィールドは、データベースの使用時によく使用されます。よく使われるのは作成時間と更新時間です。し...