1. 程式人生 > 程式設計 >vue中使用vue-print.js實現多頁列印

vue中使用vue-print.js實現多頁列印

本文主要介紹了vue專案中使用print.js列印,解決多頁,分頁,列印預覽樣式修改等問題。

引入安裝vue-print.js

cnpm i vue-printjs --save-dev

解決列印多頁只出現一頁問題

由於列印外掛存在問題,如果列印檔案超出一頁,只顯示一頁,所以我們需要修改print.js原始檔,所以只能手動下載vue-print.js到本地,做一些修改,然後引入到專案中,不能使用npm安裝

下載 print.js

https://github.com/zxc19890923/print/blob/master/print.js
在src目錄下面建立plugins/print/Print.js檔案儲存外掛內容

修改 print.js

// 搜尋getStyle方法,新增:str += "<style>html,body,div{height: auto!important;font-size:14px}</style>";

 getStyle: function () {
  var str = "",styles = document.querySelectorAll('style,link');
  for (var i = 0; i < styles.length; i++) {
   str += styles[i].outerHTML;
  }
  str += "<style>" + (this.options.noPrint ? this.options.noPrint : '.no-print') + "{display:none;}</style>";
  str += "<style>html,div{height: auto!important;font-size:14px}</style>";

  return str;
 },

main.js中引入外掛

...
import Print from './plugins/print/Print'
Vue.use(Print)

vue檔案中的使用

  <div class="show">
    這是展示的需要列印的內容,給使用者看的。
  </div>
  <div ref="print" class="recordImg" id="print">
    這裡是需要列印的內容,出現在列印預覽的介面,這裡的樣式需要寫在 @media print {}裡面 如果需要設定預覽頁規則,頁尾等樣式 @page {} 
    <div class="no-print">不需要列印的內容</div>
    <div class="do-not-print-div">不要列印我</div> 
    <button @click="printContext">列印</button>
  </div>
  ...
  <script>
    ...
    method: {
      printContext () {
        this.$print(this.$refs.print)
      }
      // 不列印方法1. 新增no-print樣式類
      // 不列印方法2. this.$print(this.$refs.print,{'no-print':'.do-not-print-div'})
    }
  </script>

最後
1、為了列印全部,手動下載外掛並修改。
2、列印內容樣式需要寫在 @media print {}中
3、this.$print(),不需要列印內容可以通過css,js兩種方法控制。

到此這篇關於vue中使用vue-print.js實現多頁列印的文章就介紹到這了,更多相關vue print.js 多頁列印內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!