vue print 打印

server/2025/2/12 7:41:57/

vue 点击打印页面部分内容,或者打印弹窗内的内容

打印页面部分内容

<template><div><div id="print"><div class="info"><div class="bx_title">费用报销单<span class="code">NO.<span class="code-num">2008359</span></span></div><div class="list"><div class="list_item" style="width: 22%;">部门:财务部</div><div class="list_item" style="width: 22%;">报销人:李四</div><div class="list_item" style="width: 30%;">日期:2021 年 06 月 01 日</div><div class="list_item" style="width: 22%;">领款人:李四</div></div><div class="approval"><div>XXX审批:</div><div>XXX审批:</div><div>XXX审批:</div><div>XXX审批:</div></div></div></div><div style="display: flex; justify-content: flex-end; padding-top: 20px"><el-button @click="close">取 消</el-button><el-button type="primary" @click="handleClick">打印</el-button></div></div>
</template>
<script>javascript">
export default {name: "Detail",data() {return {data: []};},methods: {handleClick() {const printContents = document.getElementById('print').innerHTML;const printWindow = window.open('', '', 'width=800,height=1000');printWindow.document.open();printWindow.document.write('<html><head><title>打印</title>');// 复制原页面的样式const links = document.getElementsByTagName('link');for (let i = 0; i < links.length; i++) {if (links[i].rel === 'stylesheet') {printWindow.document.write(`<link rel="stylesheet" type="text/css" href="${links[i].href}">`);}}// 复制原页面的内联样式const styleTags = document.getElementsByTagName('style');for (let i = 0; i < styleTags.length; i++) {printWindow.document.write(styleTags[i].outerHTML);}printWindow.document.write('</head><body>');printWindow.document.write(printContents);printWindow.document.write('</body></html>');printWindow.document.close();// // 等待样式加载完成后再调用打印printWindow.onload = function () {printWindow.print();printWindow.close();};}}
}
</script>

遇到问题

1、css 样式丢失

检测是否使用less/scss嵌入式样式风格,全部改成原生的css的写法。

2、指定具体标签内元素打印,css 样式丢失

javascript"><style>#print {//样式如果写在这个下面,就会造成样式丢失}
</style>

若要打印 print 里面的,则样式只能在 info下面,不能写在 print 下,不然会丢失


http://www.ppmy.cn/server/166631.html

相关文章

25/2/7 <机器人基础> 牛顿-欧拉递推公式,开闭环

牛顿-欧拉递推公式是用于计算刚体动力学中&#xff0c;刚体的角速度和角加速度的递推关系。这个公式是牛顿第二定律和欧拉旋转定理的结合&#xff0c;适用于描述刚体在空间中的旋转运动。 对于一个刚体&#xff0c;设其在某时刻的角速度为 ω&#xff0c;角加速度为 α&#xf…

python2048游戏

实现了一个完整的2048游戏&#xff0c;并将其展示在一个图形化界面上。具体功能包括&#xff1a; 初始化游戏板&#xff1a;创建一个4x4的二维列表&#xff0c;表示游戏板&#xff0c;并在初始状态下随机放置两个数字&#xff08;通常是2或4&#xff09;。绘制游戏板&#xff…

论文笔记-COLING2025-LLMTreeRec

论文笔记-COLING2025-LLMTreeRec: Unleashing the Power of Large Language Models for Cold-Start Recommendations LLMTreeRec: 释放大语言模型在冷启动推荐中的力量摘要1.引言2.框架2.1项目树构建2.2以LLM为中心的基于树的推荐2.2.1推荐链策略2.2.2检索策略 3.实验3.1实验设…

【LeetCode Hot100 多维动态规划】最小路径和、最长回文子串、最长公共子序列、编辑距离

多维动态规划 机器人路径问题思路代码实现 最小路径和问题动态规划思路状态转移方程边界条件 代码实现 最长回文子串思路代码实现 最长公共子序列&#xff08;LCS&#xff09;题目描述解决方案 —— 动态规划1. 状态定义2. 状态转移方程3. 初始化4. 代码实现 编辑距离&#xff…

1.攻防世界 baby_web

题目描述这里有提示&#xff0c;初始页面 进入题目页面如下 很简洁的页面只有一行HELLO WORLD ctrlu查看了源码也没有信息 用burp suite抓包&#xff0c;并发送到重放器 根据提示&#xff08;初始页面&#xff09;修改访问index.php文件 index.php index.php 是一种常见的…

【漫话机器学习系列】083.安斯库姆四重奏(Anscombe‘s Quartet)

安斯库姆四重奏&#xff08;Anscombes Quartet&#xff09; 1. 什么是安斯库姆四重奏&#xff1f; 安斯库姆四重奏&#xff08;Anscombes Quartet&#xff09;是一组由统计学家弗朗西斯安斯库姆&#xff08;Francis Anscombe&#xff09; 在 1973 年 提出的 四组数据集。它们…

Objective-C语言的云计算

Objective-C语言的云计算探索 引言 随着信息技术的快速发展&#xff0c;云计算作为一种新兴的计算模式&#xff0c;正逐渐改变着我们的生活和工作方式。云计算通过互联网提供了强大的计算能力和存储资源&#xff0c;使得用户能够按照需求随时获取服务。在这个背景下&#xff…

使用外骨骼灵活远程控制协作机器人案例

外骨骼控制器采用可调节结构&#xff0c;简化了机器人编程&#xff0c;使协作机器人 FR3 的远程控制变得容易。 一、引言 在开发机器人手臂或双臂系统的应用程序时&#xff0c;经常会遇到以下挑战&#xff1a; 1. 使用拖动和示教进行定位的困难&#xff1a;拖动和示教功能通常…