欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue使用Print.js打印頁面樣式不出現(xiàn)的解決

 更新時(shí)間:2022年10月19日 16:50:36   作者:迷陣  
這篇文章主要介紹了vue使用Print.js打印頁面樣式不出現(xiàn)的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue Print.js打印頁面樣式不出現(xiàn)

在這里插入圖片描述

在這里插入圖片描述

解決方案

加上這句就好了!完美!

在這里插入圖片描述

vue-print-nb打印問題總結(jié)

1、表格的列缺失(element-ui table組件)

原因:table-layout: fixed導(dǎo)致的,出現(xiàn)部分列沒有被打印

讓表table布局更加符合預(yù)期,普通使用table時(shí),其table-layout 默認(rèn)值是 auto,導(dǎo)致表格第二行和第一行不一樣寬,也就是兩行的寬度不對(duì)齊。而使用:

table { table-layout: fixed; }

則會(huì)讓表的布局以第一行為準(zhǔn),設(shè)置表格的寬度,然后其他行的表格寬度就按照第一行為準(zhǔn)。一般表格第一行是表頭標(biāo)題,第二行以后是數(shù)據(jù)行,也就是讓數(shù)據(jù)行的每列寬度向第一行列寬度看齊。

這種樣式的表格布局在性能上也快得多,這是因?yàn)檎麄€(gè)表格的內(nèi)容不需要花費(fèi)進(jìn)行分析,以便知道列的寬度。

解決方法:

<style lang="less" scoped>
? ? /deep/ table{
? ? ? ? table-layout: auto !important;
? ? }
? ? /deep/ .el-table__header-wrapper .el-table__header{
? ? ? ? width: 100% !important;
? ? }
? ? /deep/ .el-table__body-wrapper .el-table__body{
? ? ? ? width: 100% !important;
? ? }
</style>

注意點(diǎn):

/deep/ table{
? ? ? ? table-layout: auto !important;
? ? }

可能會(huì)造成樣式錯(cuò)亂,比如你頁面有table,打印彈出層的table,這樣修改樣式有可能會(huì)導(dǎo)致頁面表格行錯(cuò)位,解決辦法:在頁面的<el-table>標(biāo)簽上加id,比如pagetable,修改less樣式如下

<style lang="less" scoped>
? ? /deep/ table{
? ? ? ? table-layout: auto !important;
? ? }
? ? /deep/ .el-table__header-wrapper .el-table__header{
? ? ? ? width: 100% !important;
? ? }
? ? /deep/ .el-table__body-wrapper .el-table__body{
? ? ? ? width: 100% !important;
? ? }
? ? /deep/ #pagetable table{
? ? ? ? table-layout: fixed !important;
? ? }
</style>

2、打印內(nèi)容缺失(print.js/print-js獨(dú)有,固定高度導(dǎo)致)

原因:一般為了好看,會(huì)固定高度,然后超出內(nèi)容出現(xiàn)滾動(dòng)條,但是打印的時(shí)候,只會(huì)打印固定高度的內(nèi)容,導(dǎo)致打印內(nèi)容缺失

解決方法:

<style scoped>
? ? @media print {
? ? ? ? #box{
? ? ? ? ? ? height: 100%;
? ? ? ? }
? ? }
</style>

或者這樣:

找到print.js的getStyle方法,加入一行代碼

str += "<style>html,body,div{height: auto !important;}</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,body,div{height: auto !important;}</style>";
?
?? ??? ?return str;
?? ?},

注意點(diǎn):

1、box是你固定高度標(biāo)簽的id,當(dāng)然你也可以換成class或者其他,使樣式生效即可

2、@media print只影響打印的樣式,不會(huì)影響頁面樣式 

3、表格內(nèi)容缺失(表格滾動(dòng)導(dǎo)致,只打印顯示區(qū)域內(nèi)容)

原因:不管是print.js還是vue-print-nb插件,都有這個(gè)問題,因?yàn)楸砀駶L動(dòng)導(dǎo)致

解決方法:

用一個(gè)隱藏div包裹你要打印的表格或者還有其他內(nèi)容,總體包裹

<div id="boxbox" style="display:none;">
? ? ? ? <el-table :data="formList" style="width: 100%" border ?width="100%">
? ? ? ? ? ? <el-table-column align="center" ?width="200" prop="prop" ?label="列名"></el-table-column>
? ? ? ? ? ? <el-table-column label="是否啟用" width="100">
? ? ? ? ? ? ? ? <template slot-scope="scope">
? ? ? ? ? ? ? ? ? ? <el-switch v-model="scope.row.show" :active-value="1" :inactive-value="2" active-color="#409eff" inactive-color="#B9B9B9"
? ? ? ? ? ? ? ? ? ? @change="changeSwitch(scope.row)"/>
? ? ? ? ? ? ? ? </template>
? ? ? ? ? ? </el-table-column>
? ? ? ? ? ? <el-table-column label="是否必填" width="100">
? ? ? ? ? ? ? ? <template slot-scope="scope">
? ? ? ? ? ? ? ? ? ? <el-switch v-model="scope.row.required" :active-value="1" :inactive-value="2" active-color="#409eff" inactive-color="#B9B9B9"
? ? ? ? ? ? ? ? ? ? @change="changeSwitch(scope.row)"/>
? ? ? ? ? ? ? ? </template>
? ? ? ? ? ? </el-table-column>
? ? ? ? ? ? <el-table-column align="center" ?prop="sort" width="150" ?label="排序"></el-table-column>
? ? ? ? ? ? <el-table-column label="操作" ?align="center" ?width="200">
? ? ? ? ? ? ? ? <template slot-scope="scope">
? ? ? ? ? ? ? ? ? ? <span v-if="scope.row.sort!=0" class="editrow" @click="up(scope.row)" style="margin-right:10px">上升</span>
? ? ? ? ? ? ? ? ? ? <span v-if="scope.row.sort!=formList.length-1" class="editrow" style="margin-right:10px" @click="down(scope.row)">下降</span>
? ? ? ? ? ? ? ? ? ? <span v-if="scope.row.sort!=0" class="editrow" @click="upToZero(scope.row)" style="margin-right:10px">置頂</span>
? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? </template>
? ? ? ? ? ? </el-table-column>
? ? ? ? </el-table>
?
? ? </div>

注意點(diǎn):

1、經(jīng)過測試,A4紙大小寬度大致在650px,所以你隱藏的table列,要自己設(shè)置寬度,整體寬度在750左右,大于750,列會(huì)超出,不打印,小于750,右邊會(huì)留有空白

2、<el-table>不能固定高度,所以不要設(shè)置高度

4、不能分頁

原因:不管你是下載print.js保存到本地,還是npm下載print-js,只能打印一頁,可能太菜了

解決方法:

使用插件:vue-print-nb,使用方法:vue-print-nb

此插件會(huì)根據(jù)打印內(nèi)容的高度,自己分頁,如果想自定義分頁的話,方法如下:

1、在末尾的最后一個(gè)標(biāo)簽,加入樣式 style="page-break-after: always;"

<div style="page-break-after: always;">我是本頁的末尾哦</div>

2、定義打印樣式,原理同上,但是方便需要,只需要統(tǒng)一定義class即可

@media print {
? ? ? ? @page{
? ? ? ? ? ? size: ?auto;
? ? ? ? ? ? margin: 3mm;
? ? ? ? }
? ? ? ? .footer {page-break-after: always;}
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue3中注冊(cè)全局的組件,并在TS中添加全局組件提示方式

    Vue3中注冊(cè)全局的組件,并在TS中添加全局組件提示方式

    這篇文章主要介紹了Vue3中注冊(cè)全局的組件,并在TS中添加全局組件提示方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Vue項(xiàng)目部署后首頁白屏問題排查與解決方法

    Vue項(xiàng)目部署后首頁白屏問題排查與解決方法

    在部署 Vue.js 項(xiàng)目時(shí),有時(shí)會(huì)遇到首頁加載后出現(xiàn)白屏的情況,這可能是由于多種原因造成的,本文將介紹一些常見的排查方法和解決方案,幫助開發(fā)者快速定位問題并解決,感興趣的小伙伴跟著小編一起來看看吧
    2024-08-08
  • 簡單實(shí)現(xiàn)Vue的observer和watcher

    簡單實(shí)現(xiàn)Vue的observer和watcher

    這篇文章主要教大家如何簡單實(shí)現(xiàn)Vue的observer和watcher,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • element-ui el-dialog嵌套table組件,ref問題及解決

    element-ui el-dialog嵌套table組件,ref問題及解決

    這篇文章主要介紹了element-ui el-dialog嵌套table組件,ref問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • vue獲取token(設(shè)置token,清除token)實(shí)現(xiàn)登錄方式

    vue獲取token(設(shè)置token,清除token)實(shí)現(xiàn)登錄方式

    這篇文章主要介紹了vue獲取token(設(shè)置token,清除token)實(shí)現(xiàn)登錄方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 基于vue實(shí)現(xiàn)多引擎搜索及關(guān)鍵字提示

    基于vue實(shí)現(xiàn)多引擎搜索及關(guān)鍵字提示

    這篇文章主要為大家詳細(xì)介紹了基于vue實(shí)現(xiàn)多引擎搜索及關(guān)鍵字提示的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • vue中ref的用法小結(jié)

    vue中ref的用法小結(jié)

    在項(xiàng)目中使用ref時(shí)有時(shí)候直接取值,有時(shí)候返回的卻是一個(gè)數(shù)組,不知其中緣由,后查了一下ref用法,在這里給大家分享vue中ref的用法,感興趣的朋友一起看看吧
    2023-11-11
  • vue使用天地圖、openlayers實(shí)現(xiàn)多個(gè)底圖疊加顯示效果

    vue使用天地圖、openlayers實(shí)現(xiàn)多個(gè)底圖疊加顯示效果

    這篇文章主要介紹了vue使用天地圖、openlayers實(shí)現(xiàn)多個(gè)底圖疊加顯示,根據(jù)返回的經(jīng)緯度列表通過天地圖、openlayers實(shí)現(xiàn)底圖添加,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2022-04-04
  • vuex數(shù)據(jù)狀態(tài)持久化問題

    vuex數(shù)據(jù)狀態(tài)持久化問題

    這篇文章主要介紹了vuex數(shù)據(jù)狀態(tài)持久化問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue中如何禁止input框和textarea編輯

    vue中如何禁止input框和textarea編輯

    這篇文章主要介紹了vue中如何禁止input框和textarea編輯,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04

最新評(píng)論