vue3使用vue3-print-nb實現(xiàn)區(qū)域打印功能
場景
大多數(shù)后臺系統(tǒng)中都存在打印的需求,在有打印需求時,對前端來說當(dāng)然是直接打印頁面更容易,那么本篇文章就是在vue3中,使用vue3-print-nb插件來區(qū)域打印,實現(xiàn)指哪打哪!
一.安裝vue3-print-nb
npm install vue3-print-nb
二.在main.ts中引入
//引入 import print from 'vue3-print-nb' //掛載 const app = createApp(App) app.use(print)
三.HTML
<!-- 打印區(qū)域容器 --> <div id="printBox"> <span>我就是被打印的內(nèi)容</span> <span>在#printBox 容器里的內(nèi)容都會被打印噢</span> </div> <!-- 按鈕綁定打印 --> <button v-print="print">點擊打開打印預(yù)覽</button>
四.參數(shù)配置
//這里是打印的配置項
const print=ref({
id: 'printBox',//這里的id就是上面我們的打印區(qū)域id,實現(xiàn)指哪打哪
popTitle: '配置頁眉標(biāo)題', // 打印配置頁上方的標(biāo)題
extraHead: '', // 最上方的頭部文字,附加在head標(biāo)簽上的額外標(biāo)簽,使用逗號分割
preview: false, // 是否啟動預(yù)覽模式,默認(rèn)是false
previewTitle: '預(yù)覽的標(biāo)題', // 打印預(yù)覽的標(biāo)題
previewPrintBtnLabel: '預(yù)覽結(jié)束,開始打印', // 打印預(yù)覽的標(biāo)題下方的按鈕文本,點擊可進入打印
zIndex: 20002, // 預(yù)覽窗口的z-index,默認(rèn)是20002,最好比默認(rèn)值更高
previewBeforeOpenCallback() { console.log('正在加載預(yù)覽窗口!'); }, // 預(yù)覽窗口打開之前的callback
previewOpenCallback() { console.log('已經(jīng)加載完預(yù)覽窗口,預(yù)覽打開了!') }, // 預(yù)覽窗口打開時的callback
beforeOpenCallback() { console.log('開始打印之前!') }, // 開始打印之前的callback
openCallback() { console.log('執(zhí)行打印了!') }, // 調(diào)用打印時的callback
closeCallback() { console.log('關(guān)閉了打印工具!') }, // 關(guān)閉打印的callback(無法區(qū)分確認(rèn)or取消)
clickMounted() { console.log('點擊v-print綁定的按鈕了!') },
})附:分頁打印示例代碼
<template>
<div>
<button v-print="'#a'">打印</button>
<div id="a">
// 方法一
// 使用div包裹需要分頁的塊 使用 css屬性 page-break-after:always進行分頁
<div style="page-break-after:always">第一頁</div>
<div style="page-break-after:always">第二頁</div>
</div>
</div>
</template>
<style>
// 方法二
// 使用媒體查詢 在打印時設(shè)置 body 和 html 的高度為auto
@media print {
@page {
size: auto;
}
body, html { //如果vue最外層id,默認(rèn)是#app。如果設(shè)置了height:100%;,那么#app也加
height: auto !important;
}
}
</style>總結(jié)
到此這篇關(guān)于vue3使用vue3-print-nb實現(xiàn)區(qū)域打印功能的文章就介紹到這了,更多相關(guān)vue3實現(xiàn)區(qū)域打印內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue日常開發(fā)基礎(chǔ)Axios網(wǎng)絡(luò)庫封裝
這篇文章主要為大家介紹了vue日常開發(fā)基礎(chǔ)Axios網(wǎng)絡(luò)庫封裝示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08
詳解基于Vue的支持?jǐn)?shù)據(jù)雙向綁定的select組件
這篇文章主要介紹了詳解基于Vue的支持?jǐn)?shù)據(jù)雙向綁定的select組件,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
深入理解vue.js中$watch的oldvalue與newValue
這篇文章主要給大家介紹了關(guān)于vue.js中$watch的oldvalue與newValue的相關(guān)資料,文中通過示例代碼介紹的非常詳細,并且介紹了關(guān)于watch的其他測試,對大家學(xué)習(xí)或者使用vue.js具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起看看吧。2017-08-08
vue3.0運行npm run dev報錯Cannot find module&
本文主要介紹了vue3.0運行npm run dev報錯Cannot find module node:url,因為使用的node版本是14.15.1低于15.0.0導(dǎo)致,具有一定的參考價值,感興趣的可以了解一下2023-10-10
詳解keep-alive + vuex 讓緩存的頁面靈活起來
這篇文章主要介紹了keep-alive + vuex 讓緩存的頁面靈活起來,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
vue elementui簡易側(cè)拉欄的使用小結(jié)
這篇文章主要介紹了vue elementui簡易側(cè)拉欄的使用,增加了側(cè)拉欄,目的是可以選擇多條數(shù)據(jù)展示數(shù)據(jù),本文通過示例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2024-06-06
詳解如何實現(xiàn)在Vue中導(dǎo)入Excel文件
這篇文章主要介紹了如何在Vue中導(dǎo)入Excel文件,文中的示例代碼講解詳細,對我們學(xué)習(xí)或工作有一定幫助,感興趣的小伙伴可以跟隨小編一起了解一下2022-01-01
Vue為什么要謹(jǐn)慎使用$attrs與$listeners
這篇文章主要介紹了Vue為什么要謹(jǐn)慎使用$attrs與$listeners,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08

