使用vue-print-nb打印el-table問題總結(jié)
使用vue-print-nb打印el-table問題總結(jié)
css樣式添加媒體查詢 @media print {} 樣式只有在打印的時候才會生效
1、解決單選框復(fù)選框打印時選中消失的問題
@media print {
// 解決單選框復(fù)選框打印時選中消失的問題
::v-deep .el-radio__input,
::v-deep .el-checkbox__input {
-webkit-print-color-adjust: exact;
-moz-print-color-adjust: exact;
color-adjust: exact;
}
}2、解決表格打印時表格顯示不全的問題
// 解決表格打印時表格顯示不全的問題
::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 序號打印錯亂問題
::v-deep .el-table .el-table__cell.is-hidden > * {
visibility: visible;
font-size: 12px;
}4、不需要打印的內(nèi)容 在標簽上添加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;
}補充:
vue-print-nb 打印功能總結(jié)
一、安裝vue-print-nb
1 vue2安裝 npm install vue-print-nb --save
2 vue3 安裝 npm install vue3-print-nb --save
二、引入Vue項目
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: '配置頁眉標題', // 打印配置頁上方的標題
extraHead: '打印', // 最上方的頭部文字,附加在head標簽上的額外標簽,使用逗號分割
preview: true, // 是否啟動預(yù)覽模式,默認是false
previewTitle: '預(yù)覽的標題', // 打印預(yù)覽的標題
previewPrintBtnLabel: '預(yù)覽結(jié)束,開始打印', // 打印預(yù)覽的標題下方的按鈕文本,點擊可進入打印
zIndex: 20002, // 預(yù)覽窗口的z-index,默認是20002,最好比默認值更高
previewBeforeOpenCallback () { console.log('正在加載預(yù)覽窗口!'); console.log(that.msg, this) }, // 預(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ū)分確認or取消)
clickMounted () { console.log('點擊v-print綁定的按鈕了!') },
// url: 'http://localhost:8080/', // 打印指定的URL,確保同源策略相同
// asyncUrl (reslove) {
// setTimeout(() => {
// reslove('http://localhost:8080/')
// }, 2000)
// },
standard: '',
extarCss: ''
}
}
}
}五、注意點
Callback函數(shù)中this指向當(dāng)前print object對象,that返回Vue對象;
不需要頁眉頁腳可以在打印彈窗頁面的更多設(shè)置里面取消選擇;
不設(shè)置popTitle參數(shù)頁眉標題為undifined;
popTitle參數(shù)為空時,頁眉標題默認為Document Title。
六、打印樣式設(shè)置
/*
***設(shè)置打印內(nèi)容樣式,不影響頁面原有樣式
***以下內(nèi)容為設(shè)置element table在打印時的樣式,防止打印不全*/
@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() 就會調(diào)用谷歌瀏覽器的打印功能。
到此這篇關(guān)于使用vue-print-nb打印el-table問題總結(jié)的文章就介紹到這了,更多相關(guān)vue-print-nb打印el-table內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue+ElementUI 關(guān)閉對話框清空驗證,清除form表單的操作
這篇文章主要介紹了vue+ElementUI 關(guān)閉對話框清空驗證,清除form表單的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
關(guān)于Vue?監(jiān)控數(shù)組的問題
這篇文章主要介紹了Vue?監(jiān)控數(shù)組的示例,主要包括Vue?是如何追蹤數(shù)據(jù)發(fā)生變化,Vue?如何更新數(shù)組以及為什么有些數(shù)組的數(shù)據(jù)變更不能被?Vue?監(jiān)測到,對vue監(jiān)控數(shù)組知識是面試比較常見的問題,感興趣的朋友一起看看吧2022-05-05
vue使用高德地圖實現(xiàn)實時定位天氣預(yù)報功能
這篇文章主要介紹了vue使用高德地圖實現(xiàn)實時天氣預(yù)報功能,根據(jù)定位功能,使用高德地圖實現(xiàn)定位當(dāng)前城市的天氣預(yù)報功能,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2022-05-05
vue3中安裝并使用CSS預(yù)處理器Sass的方法詳解
Sass是一種CSS預(yù)處理器,它擴展了CSS的功能,提供了更高級的語法和特性,例如變量、嵌套、混合、繼承和顏色功能等,這些特性可以幫助開發(fā)者更高效地管理和維護樣式表,本文介紹vue3中安裝并使用CSS預(yù)處理器Sass的方法,感興趣的朋友一起看看吧2024-01-01

