v-print 打印的时候 右侧选项没有出现‘布局‘的问题
·
域名要https 开头
防止浏览器限制, 还可以换一下浏览器,用ie,360,火狐都试一下
我的就是谷歌浏览器不行, 其他的能出现 ‘布局’
确保样式不会过宽 外层width:100%
大概率是 el-table 的内联宽度样式 在构建后没有被覆盖
修复:强制重置 el-table 尺寸
#printNew2 .el-form-item {
margin-bottom: 0px !important;
}
.printNewStyle .el-table__header {
width: 100% !important;
}
.printNewStyle .el-table__body {
width: 100% !important;
}
.printNewStyle .el-table__footer {
width: 100% !important;
}
/* 不加 scoped,确保生效 */
@media print {
/* 特别针对 el-table */
.printNewStyle .el-table,
.printNewStyle .el-table__header-wrapper,
.printNewStyle .el-table__body-wrapper,
.printNewStyle .el-table__footer-wrapper {
width: 100% !important;
height: auto !important;
}
/* 隐藏固定列,避免双重宽度 */
.printNewStyle .el-table__fixed,
.printNewStyle .el-table__fixed-right {
display: none !important;
}
/* 允许表格内容换行 */
.printNewStyle .el-table .cell {
white-space: normal !important;
word-break: break-all !important;
}
/* 重置页面设置 */
@page {
size: auto !important;
margin: 10mm !important;
}
}
缺少 导致怪异模式
HTML 缺少 声明(最可能!)
处于怪异模式
清理 public里 index.html 的表头
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<!-- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit"> -->
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
/>
<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
<title><%= webpackConfig.name %></title>
<!-- <script src="static/Bmap/lib/js/BAIDU.API2.js"></script>
<script src="static/Bmap/lib/js/getModules.js"></script>-->
<!-- <script src="../../bmap-offline/map3.0_init.js"></script> -->
<!-- <script src="../../bmap-offline/map3.0.js"></script> -->
<!-- <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=F5g7TtwB3sBzNS7AKWvtCQTtCqlxxtGw"></script>-->
<!-- <script src="./static/js/tinymce.min.js"></script> -->
</head>
<body>
<div id="app"></div>
</body>
</html>
<template>
<div id="printNew1">
<!-- 👇 关键:这个注释会被复制到 iframe,并“欺骗”浏览器进入标准模式 -->
<!--[if !IE]>--><!DOCTYPE html><!--<![endif]-->
<!-- 你的实际内容 -->
<div class="content">...</div>
</div>
</template>
避免使用 @page { size: … }(确保不干扰
/* ❌ 不要写 */
@media print {
@page {
size: portrait; /* 这会覆盖用户选择 */
}
}
/* ✅ 正确:只设边距 */
@media print {
@page {
margin: 10mm;
}
}
防止页面断裂
@media print {
/* 防止页面断裂 */
.el-descriptions {
page-break-inside: avoid;
break-inside: avoid;
}
.pt10-1 {
border-top: 1px solid #dfe6ec;
position: static !important;
top: 0 !important;
padding-top: 0 !important;
}
}
v-print="'printId'"
更多推荐


所有评论(0)