如何在 vue2 中使用 vue-print-nb 打印功能

插件官網(wǎng)地址 https://www.npmjs.com/package/vue-print-nb

1. 安裝

npm install vue-print-nb --save

2. 導(dǎo)入打印插件

//main.js
import Print from 'vue-print-nb'
Vue.use(Print); 

3. 配置參數(shù)

4. 頁(yè)面使用

<div id="printDiv">打印內(nèi)容</div>

<el-button v-print="'#printDiv'">打印</el-button>

或

<el-button v-print="'printConfig'">打印</el-button>
<script>
export default {
  data() {
    return {
      printConfig:{
        id:'printPage', //被打印部分的id 
        popTitle: '配置頁(yè)眉標(biāo)題', // 打印配置頁(yè)上方的標(biāo)題
        extraHead: '打印', // 最上方的頭部文字础钠,附加在head標(biāo)簽上的額外標(biāo)簽,使用逗號(hào)分割
        preview: true, // 是否啟動(dòng)預(yù)覽模式霍狰,默認(rèn)是false
        previewTitle: '預(yù)覽的標(biāo)題', // 打印預(yù)覽的標(biāo)題
        previewPrintBtnLabel: '預(yù)覽結(jié)束够吩,開(kāi)始打印', // 打印預(yù)覽的標(biāo)題下方的按鈕文本,點(diǎn)擊可進(jìn)入打印
        zIndex: 20002, // 預(yù)覽窗口的z-index湿弦,默認(rèn)是20002欺税,最好比默認(rèn)值更高
        previewBeforeOpenCallback () { console.log('正在加載預(yù)覽窗口分唾!'); console.log(that.msg, this) }, // 預(yù)覽窗口打開(kāi)之前的callback
        previewOpenCallback () { console.log('已經(jīng)加載完預(yù)覽窗口勿璃,預(yù)覽打開(kāi)了擒抛!') }, // 預(yù)覽窗口打開(kāi)時(shí)的callback
        beforeOpenCallback () { console.log('開(kāi)始打印之前!') }, // 開(kāi)始打印之前的callback
        openCallback () { console.log('執(zhí)行打印了补疑!') }, // 調(diào)用打印時(shí)的callback
        closeCallback () { console.log('關(guān)閉了打印工具歧沪!') }, // 關(guān)閉打印的callback(無(wú)法區(qū)分確認(rèn)or取消)
        clickMounted () { console.log('點(diǎn)擊v-print綁定的按鈕了!') },
        // url: 'http://localhost:8080/', // 打印指定的URL莲组,確保同源策略相同
        // asyncUrl (reslove) {
        //   setTimeout(() => {
        //     reslove('http://localhost:8080/')
        //   }, 2000)
        // },
        standard: '',
        extarCss: ''
      },
    }
  }
}
</script>

5. 打印樣式設(shè)置

<style scoped media="print">
    /*指定打印的分頁(yè)*/
   /deep/ section{
       page-break-after:always;
   }

   /*避免出現(xiàn)空白尾頁(yè)*/
   html,body,#app{
       height: 98% !important;
       margin: 0px;
       padding: 0px;
   }
</style>

設(shè)置打印內(nèi)容樣式诊胞,不影響頁(yè)面原有樣式
以下內(nèi)容為設(shè)置 element table 在打印時(shí)的樣式,防止打印不全

@page {
  size: auto;
  margin: 3mm;
}
@media print {
  html {
    background-color: #ffffff;
    height: auto;
    margin: 0px;
  }
  body {
    border: solid 1px #ffffff;
    /* margin: 10mm 15mm 10mm 15mm; */
  }
  #print table {
    table-layout: auto !important;
  }
  #print .el-table__header-wrapper .el-table__header {
    width: 100% !important;
    border: solid 1px #f2f2f2;
  }
  #print .el-table__body-wrapper .el-table__body {
    width: 100% !important;
    border: solid 1px #f2f2f2;
  }
  #print #pagetable table {
    table-layout: fixed !important;
  }
  #print .el-table__empty-block {
    width: 100% !important;
    height: auto !important;
  }
  #print .el-input-number--small{
    width: 100% !important;
  }
 
}

6. 分頁(yè)

在要進(jìn)行分頁(yè)的標(biāo)簽上锹杈,添加以下樣式

page-break-after:always

例如

<div id="printPage">
    <section>
        第一頁(yè)的內(nèi)容
    </section>
    <section>
        第二頁(yè)的內(nèi)容
    </section>
</div>

<style>
section{
    page-break-after: always;
}
</style>

或者 在需要分頁(yè)的內(nèi)容最后加上

<p style="page-break-after: always;"></p>

7. 移除末尾的空白頁(yè)

若打印時(shí)撵孤,末尾總是出現(xiàn)空白頁(yè),則存在定義了height:100%的元素嬉橙,刪除掉此樣式即可
通常都是因?yàn)榇嬖谝韵聵邮綄?dǎo)致,通常被定義在全局樣式文件中早直,或index.html中

html,body,#app{
    height: 100%;
}

8. 隱藏打印區(qū)域中的某個(gè)div

您可以通過(guò)在需要隱藏的div上添加class="no-print",然后在打印樣式中設(shè)置該類的display屬性為none來(lái)實(shí)現(xiàn)隱藏市框。具體步驟如下:

  1. 在需要隱藏的 div 上(測(cè)試 必須是 div 標(biāo)簽)添加class="no-print",例如:
<div class="no-print">
  這是需要隱藏的內(nèi)容
</div>
  1. 在打印樣式中設(shè)置該類的display屬性為none糕韧,例如:
@media print {
  .no-print {
    display: none;
  }
}

這樣枫振,在打印預(yù)覽或者實(shí)際打印時(shí)喻圃,帶有 class="no-print" 的 div 就會(huì)被隱藏掉。

9. window.print() 瀏覽器打印功能

js 執(zhí)行 window.print() 就會(huì)調(diào)用谷歌瀏覽器的打印功能粪滤。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末斧拍,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子杖小,更是在濱河造成了極大的恐慌肆汹,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件予权,死亡現(xiàn)場(chǎng)離奇詭異昂勉,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)扫腺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門岗照,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人笆环,你說(shuō)我怎么就攤上這事攒至。” “怎么了躁劣?”我有些...
    開(kāi)封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵迫吐,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我账忘,道長(zhǎng)志膀,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任闪萄,我火速辦了婚禮梧却,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘败去。我一直安慰自己放航,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布圆裕。 她就那樣靜靜地躺著广鳍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吓妆。 梳的紋絲不亂的頭發(fā)上赊时,一...
    開(kāi)封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音行拢,去河邊找鬼祖秒。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的竭缝。 我是一名探鬼主播房维,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼抬纸!你這毒婦竟也來(lái)了咙俩?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤湿故,失蹤者是張志新(化名)和其女友劉穎阿趁,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坛猪,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡脖阵,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了砚哆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片独撇。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖躁锁,靈堂內(nèi)的尸體忽然破棺而出纷铣,到底是詐尸還是另有隱情,我是刑警寧澤战转,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布搜立,位于F島的核電站,受9級(jí)特大地震影響槐秧,放射性物質(zhì)發(fā)生泄漏啄踊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一刁标、第九天 我趴在偏房一處隱蔽的房頂上張望颠通。 院中可真熱鬧,春花似錦膀懈、人聲如沸顿锰。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)硼控。三九已至,卻和暖如春胳赌,著一層夾襖步出監(jiān)牢的瞬間牢撼,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工疑苫, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留熏版,地道東北人纷责。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像纳决,于是被迫代替她去往敵國(guó)和親碰逸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子乡小,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容