使用vue-print-nb打印el-table問題總結(jié)
使用vue-print-nb打印el-table問題總結(jié)
css樣式添加媒體查詢 @media print {} 樣式只有在打印的時(shí)候才會(huì)生效
1、解決單選框復(fù)選框打印時(shí)選中消失的問題
@media print {
// 解決單選框復(fù)選框打印時(shí)選中消失的問題
::v-deep .el-radio__input,
::v-deep .el-checkbox__input {
-webkit-print-color-adjust: exact;
-moz-print-color-adjust: exact;
color-adjust: exact;
}
}2、解決表格打印時(shí)表格顯示不全的問題
// 解決表格打印時(shí)表格顯示不全的問題
::v-deep table {
table-layout: auto !important;
}
::v-deep .el-table__header-wrapper .el-table__header {
width: 99% !important;
}
::v-deep .el-table__body-wrapper .el-table__body {
width: 98% !important;
}
::v-deep #print table {
table-layout: fixed !important;
}
::v-deep .el-table__fixed {
display: none;
}3、解決table 序號(hào)打印錯(cuò)亂問題
::v-deep .el-table .el-table__cell.is-hidden > * {
visibility: visible;
font-size: 12px;
}4、不需要打印的內(nèi)容 在標(biāo)簽上添加class名 noPrint 即可
.noPrint {
display: none;
}
@page {
size: auto;
// margin: 3mm; // 頁邊距
}其他打印樣式
// form 表單打印樣式調(diào)整
::v-deep .el-form-item__label {
padding: 0;
width: 90px !important;
}
::v-deep .el-form-item__content {
margin-left: 90px !important;
}
::v-deep .el-select__caret {
opacity: 0;
}
::v-deep .el-form-item__label {
padding: 0;
width: 90px !important;
}
// 清除input邊框
::v-deep .el-input__inner {
max-width: 180px;
padding: 0px;
border: 0;
}
::v-deep .el-table {
.el-input__inner {
display: none;
}
}
// el-select 多選清除邊距,icon和背景
::v-deep .el-input__icon {
display: none;
}
::v-deep .el-tag {
padding: 0;
border-width: 0;
}
::v-deep .el-tag__close {
display: none;
}補(bǔ)充:
vue-print-nb 打印功能總結(jié)
一、安裝vue-print-nb
1 vue2安裝 npm install vue-print-nb --save
2 vue3 安裝 npm install vue3-print-nb --save
二、引入Vue項(xiàng)目
vue2 引入方式
// 1. 全局掛載
import Print from 'vue-print-nb'
Vue.use(Print)
// or
// 2. 自定義指令
import print from 'vue-print-nb'
directives: {
print
}vue3 引入方式
// 1. 全局掛載
import { createApp } from 'vue'
import App from './App.vue'
import print from 'vue3-print-nb'
const app = createApp(App)
app.use(print)
app.mount('#app')
// or
// 2. 自定義指令
import print from 'vue3-print-nb'
directives: {
print
}三、參數(shù)說明

四、應(yīng)用
template示例
<template>
<div class="hello">
<h1>{{ msg }}</h1>
<h2>Essential Links</h2>
// 局部打印文本以及按鈕
<div id="printArea">Print Area</div>
<button v-print="print">Print!</button>
<ul>
<li>
<a
rel="external nofollow"
target="_blank"
>
Core Docs
</a>
</li>
<li>
<a
rel="external nofollow"
target="_blank"
>
Forum
</a>
</li>
<li>
<a
rel="external nofollow"
target="_blank"
>
Community Chat
</a>
</li>
<li>
<a
rel="external nofollow"
target="_blank"
>
Twitter
</a>
</li>
<br>
<li>
<a
rel="external nofollow"
target="_blank"
>
Docs for This Template
</a>
</li>
</ul>
<h2>Ecosystem</h2>
<ul>
<li>
<a
rel="external nofollow"
target="_blank"
>
vue-router
</a>
</li>
<li>
<a
rel="external nofollow"
target="_blank"
>
vuex
</a>
</li>
<li>
<a
rel="external nofollow"
target="_blank"
>
vue-loader
</a>
</li>
<li>
<a
rel="external nofollow"
target="_blank"
>
awesome-vue
</a>
</li>
</ul>
</div>
</template>script示例:
export default {
name: 'HelloWorld',
data () {
let that = this
return {
msg: 'Welcome to Your Vue.js App',
print: {
id: 'printArea',
popTitle: '配置頁眉標(biāo)題', // 打印配置頁上方的標(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é)束,開始打印', // 打印預(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ù)覽窗口打開之前的callback
previewOpenCallback () { console.log('已經(jīng)加載完預(yù)覽窗口,預(yù)覽打開了!') }, // 預(yù)覽窗口打開時(shí)的callback
beforeOpenCallback () { console.log('開始打印之前!') }, // 開始打印之前的callback
openCallback () { console.log('執(zhí)行打印了!') }, // 調(diào)用打印時(shí)的callback
closeCallback () { console.log('關(guān)閉了打印工具!') }, // 關(guān)閉打印的callback(無法區(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: ''
}
}
}
}五、注意點(diǎn)
Callback函數(shù)中this指向當(dāng)前print object對(duì)象,that返回Vue對(duì)象;
不需要頁眉頁腳可以在打印彈窗頁面的更多設(shè)置里面取消選擇;
不設(shè)置popTitle參數(shù)頁眉標(biāo)題為undifined;
popTitle參數(shù)為空時(shí),頁眉標(biāo)題默認(rèn)為Document Title。
六、打印樣式設(shè)置
/*
***設(shè)置打印內(nèi)容樣式,不影響頁面原有樣式
***以下內(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;
}
}七 window.print() 瀏覽器打印功能
js 執(zhí)行 window.print() 就會(huì)調(diào)用谷歌瀏覽器的打印功能。
到此這篇關(guān)于使用vue-print-nb打印el-table問題總結(jié)的文章就介紹到這了,更多相關(guān)vue-print-nb打印el-table內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue導(dǎo)出word純前端的實(shí)現(xiàn)方式
這篇文章主要介紹了vue導(dǎo)出word純前端的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
vue+ElementUI 關(guān)閉對(duì)話框清空驗(yàn)證,清除form表單的操作
這篇文章主要介紹了vue+ElementUI 關(guān)閉對(duì)話框清空驗(yàn)證,清除form表單的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Vue3快速實(shí)現(xiàn)文件上傳OSS的方法詳解
這篇文章給大家介紹了Vue3快速實(shí)現(xiàn)文件上傳OSS的方法,上傳文件可以說是經(jīng)典的需求了,在后臺(tái)管理項(xiàng)目中隨處可見,一般是由前端進(jìn)行文件上傳,然后再由后端去處理,本文旨在實(shí)現(xiàn)上傳功能,不考慮額外的功能(如文件尺寸限制),感興趣的朋友可以參考下2024-01-01
關(guān)于Vue?監(jiān)控?cái)?shù)組的問題
這篇文章主要介紹了Vue?監(jiān)控?cái)?shù)組的示例,主要包括Vue?是如何追蹤數(shù)據(jù)發(fā)生變化,Vue?如何更新數(shù)組以及為什么有些數(shù)組的數(shù)據(jù)變更不能被?Vue?監(jiān)測到,對(duì)vue監(jiān)控?cái)?shù)組知識(shí)是面試比較常見的問題,感興趣的朋友一起看看吧2022-05-05
vue使用高德地圖實(shí)現(xiàn)實(shí)時(shí)定位天氣預(yù)報(bào)功能
這篇文章主要介紹了vue使用高德地圖實(shí)現(xiàn)實(shí)時(shí)天氣預(yù)報(bào)功能,根據(jù)定位功能,使用高德地圖實(shí)現(xiàn)定位當(dāng)前城市的天氣預(yù)報(bào)功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
vue3中安裝并使用CSS預(yù)處理器Sass的方法詳解
Sass是一種CSS預(yù)處理器,它擴(kuò)展了CSS的功能,提供了更高級(jí)的語法和特性,例如變量、嵌套、混合、繼承和顏色功能等,這些特性可以幫助開發(fā)者更高效地管理和維護(hù)樣式表,本文介紹vue3中安裝并使用CSS預(yù)處理器Sass的方法,感興趣的朋友一起看看吧2024-01-01

