当前位置: 首页 > news >正文

Vue3 打印网页内容

<template><div><!-- 打印内容区域 --><div ref="printContent" class="print-content"><h2>打印内容标题</h2><p>这是要打印的内容...</p><table border="1" style="width: 100%"><tr><th>项目</th><th>数量</th><th>价格</th></tr><tr><td>商品A</td><td>2</td><td>¥100</td></tr><tr><td>商品B</td><td>1</td><td>¥200</td></tr></table></div><!-- 打印按钮 --><button @click="handlePrint">打印内容</button></div>
</template><script setup>
import { ref } from 'vue';const printContent = ref(null);const handlePrint = () => {const printWindow = window.open('', '_blank');printWindow.document.write(`<html><head><title>打印</title><style>body { font-family: Arial; margin: 20px; }table { border-collapse: collapse; width: 100%; }th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }@media print {.no-print { display: none !important; }body { margin: 0; padding: 0; }}</style></head><body>${printContent.value.innerHTML}<script>setTimeout(() => {window.print();window.close();}, 100);<\/script></body></html>`);printWindow.document.close();
};
</script><style scoped>
.print-content {margin: 20px;padding: 20px;border: 1px solid #eee;
}@media print {.no-print {display: none !important;}
}
</style>

使用 CSS 媒体查询隐藏非打印内容

<template><div><!-- 不打印的内容 --><div class="no-print"><h1>网页标题</h1><nav>导航菜单...</nav></div><!-- 打印内容 --><div class="printable-area"><h2>订单详情</h2><p>订单号: 123456789</p><!-- 更多打印内容... --></div><button @click="printPage" class="no-print">打印页面</button></div>
</template><script setup>
const printPage = () => {window.print();
};
</script><style>
/* 普通样式 */
.no-print {padding: 20px;background-color: #f5f5f5;
}.printable-area {padding: 20px;margin: 20px 0;border: 1px dashed #ccc;
}/* 打印样式 */
@media print {.no-print {display: none;}.printable-area {border: none;padding: 0;margin: 0;}body {font-size: 12pt;line-height: 1.5;}
}
</style>

http://www.xdnf.cn/news/48961.html

相关文章:

  • 通过Dify快速搭建本地AI智能体开发平台
  • 高边开关和低边开关的区别
  • 前端工程化之自动化部署
  • MVCC介绍
  • 《AI大模型应知应会100篇》第28篇:大模型在文本创作中的应用技巧
  • Matlab FCM模糊聚类
  • AI 编程工具——使用cursor创建一个mcp服务,并在cursor中调用
  • 使用LSTM动态调整SIMPLE算法松弛因子的CFD仿真训练程序
  • 使用tshark命令解析tcpdump抓取的数据包
  • 2025年4月19日
  • 【第四十一周】文献阅读:HippoRAG:受神经生物学启发的大型语言模型长期记忆机制
  • STM32 CubeMx下载及安装(一)
  • 【leetcode100】一和零
  • HarmonyOS-ArkUI-动画分类简介
  • javaSE.链表
  • 前端知识深度学习
  • [论文阅读]Making Retrieval-Augmented Language Models Robust to Irrelevant Context
  • ClickHouse简介
  • TCP常见知识点整理
  • 【C语言】char unsigned char signed char
  • Centos7 ftp、sftp无法使用ftp连接虚拟机
  • vue3 excel文件导入
  • MAC-从es中抽取数据存入表中怎么实现
  • C语言状态字与库函数详解:概念辨析与应用实践
  • 2025-2030:视频联网平台的六大技术演进趋势
  • Java开发软件
  • 每日算法-250420
  • Java中的锁
  • 【C++】 —— 笔试刷题day_21
  • ARM裸机开发——I.MX6U_汇编LED灯驱动