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

vue前端实现打印功能并约束纸张大小---调用浏览器打印功能打印页面部分元素并固定纸张大小

需求是打印指定div实现小票打印功能。调用浏览器的自带打印功能只能实现打印可视区域,所以这里采用截图+新窗口打开打印去实现此需求。

1.安装html2canvas库实现截图功能

npm install html2canvas --save

2.在需要进行截图和打印的组件中,引入html2canvas库

import html2canvas from 'html2canvas';

3.实现截图打印功能

  1. 需要给打印元素添加id为targetDiv
<div id="targetDiv"></div>
  1. 截图div获取base64图片
    // 打印当前sheetprintDiv() {const div = document.getElementById('targetDiv'); // 通过id获取目标divhtml2canvas(div).then((canvas) => {const base64 = canvas.toDataURL(); // 将canvas转换为base64图片this.printMethods(base64); // 调用打印方法});}
  1. 书写打印方法
printMethods(base64) {const printWindow = window.open('', '_blank'); // 打开一个新的空白窗口printWindow.document.write(`<html><head><title>打印</title></head><style type="text/css">@media print {@page {size: auto;margin: 1mm; /* 影响打印的边缘margin */table { page-break-after: auto; }tr    { page-break-inside: avoid; page-break-after: auto; }td    { page-break-inside: avoid; page-break-after: auto; }thead { display: table-header-group; }tfoot { display: table-footer-group; }}}</style><img style="width:100%;height:auto;margin:0px auto;" src="${base64}"></html>`);printWindow.document.close();printWindow.onload = function () {// 图片加载完成后触发打印操作printWindow.print(); // 打印新窗口中的内容printWindow.onafterprint = function () {// 打印完成后关闭新窗口printWindow.close();};};}

注意:

1.  <head><title>打印</title></head>这里是新窗口的页面标题
2.  @media print {@page {size: auto;margin: 1mm; /* 影响打印的边缘margin */table { page-break-after: auto; }tr    { page-break-inside: avoid; page-break-after: auto; }td    { page-break-inside: avoid; page-break-after: auto; }thead { display: table-header-group; }tfoot { display: table-footer-group; }}}这一块是设置打印纸的大小 我这里是根据我元素的大小来设置的,可跟具体需求改写

相关文章:

vue前端实现打印功能并约束纸张大小---调用浏览器打印功能打印页面部分元素并固定纸张大小

需求是打印指定div实现小票打印功能。调用浏览器的自带打印功能只能实现打印可视区域&#xff0c;所以这里采用截图新窗口打开打印去实现此需求。 1.安装html2canvas库实现截图功能 npm install html2canvas --save2.在需要进行截图和打印的组件中&#xff0c;引入html2canvas…...

音乐播放器蜂鸣器ROM存储歌曲verilog,代码/视频

名称&#xff1a;音乐播放器蜂鸣器ROM存储歌曲 软件&#xff1a;Quartus 语言&#xff1a;Verilog 代码功能&#xff1a; 设计音乐播放器&#xff0c;要求至少包含2首歌曲&#xff0c;使用按键切换歌曲&#xff0c;使用开发板的蜂鸣器播放音乐&#xff0c;使用Quartus内的RO…...

Arduino Nano 引脚复用分析

近期开发的项目为气体传感器采集仪&#xff0c;综合需求&#xff0c;选取NANO作为主控&#xff0c;附属设备有 oled、旋转编码器、H桥板、蠕动泵、开关、航插等&#xff0c;主要是用现有接口怎么合理配置实现功能。 不管stm32 还是 Arduino 都要看清引脚图 D2 D3 引脚是两个外…...

Go 函数多返回值错误处理与error 类型介绍

Go 函数多返回值错误处理与error 类型介绍 文章目录 Go 函数多返回值错误处理与error 类型介绍一、error 类型与错误值构造1.1 Error 接口介绍1.2 构造错误值的方法1.2.1 使用errors包1.2.2 自定义错误类型 二、error 类型的好处2.1 第一点&#xff1a;统一了错误类型2.2 第二点…...

数论分块

本质就是利用取整分数值的块状分布。 UVA11526 H(n) 题意&#xff1a; 求 ∑ i 1 n n i \sum_{i1}^{n} \frac {n}{i} ∑i1n​in​。 解析&#xff1a; ⌊ n i ⌋ \lfloor \frac{n}{i} \rfloor ⌊in​⌋ 只有 O ( n ) O(\sqrt n) O(n ​) 种取值&#xff0c;考虑将相同值同…...

宏任务与微任务,代码执行顺序

js引擎工作进程是同步的。事件循环机制&#xff0c;事件队列。 脚本代码执行顺序&#xff0c;是先执行同步代码&#xff0c;遇到微任务&#xff0c;就把它推进任务队列中。每个宏任务完成后&#xff0c;再执行下一个宏任务。 宏任务有哪些&#xff1a; i/o读写 定时器setTi…...

正方形(Squares, ACM/ICPC World Finals 1990, UVa201)rust解法

有n行n列&#xff08;2≤n≤9&#xff09;的小黑点&#xff0c;还有m条线段连接其中的一些黑点。统计这些线段连成了多少个正方形&#xff08;每种边长分别统计&#xff09;。 行从上到下编号为1&#xff5e;n&#xff0c;列从左到右编号为1&#xff5e;n。边用H i j和V i j表示…...

【算法设计与分析qwl】伪码——顺序检索,插入排序

伪代码&#xff1a; 例子&#xff1a; 改进的顺序检索 Search(L,x)输入&#xff1a;数组L[1...n]&#xff0c;元素从小到大排序&#xff0c;数x输出&#xff1a;若x在L中&#xff0c;输出x位置下标 j ,否则输出0 j <- 1 while j<n and x>L[j] do j <- j1 if x<…...

Uniapp路由拦截-自定义路由白名单

步骤一:新建routerIntercept.js文件 步骤二:routerIntercept文件中写入:(根据自己需要修改whiteList白名单中的页面路径和自己的逻辑处理) import Vue from vue // 白名单 const whiteList = [/pages/public/login,/pages/public/privacyAgreement, ]export default asy…...

在中国可以使用 HubSpot 吗?

当谈到市场营销和客户关系管理工具时&#xff0c;HubSpot通常是一家企业的首选。然而&#xff0c;对于许多中国的企业来说&#xff0c;一个重要的问题是&#xff1a;在中国可以使用HubSpot吗&#xff1f;这个问题涉及到不同的方面&#xff0c;包括政策法规、社交媒体平台、语言…...

Java的基础应用

Java是一种广泛应用于软件开发的编程语言&#xff0c;基础应用涵盖了很多方面。以下是Java的一些基础应用方面的介绍&#xff1a; 1. 控制流语句&#xff1a;Java中的程序流程控制语句分为选择语句和循环语句。选择语句包括if-else语句和switch语句&#xff0c;循环语句包括fo…...

【excel】列转行

列转行 工作中有一些数据是列表&#xff0c;现在需要转行 选表格内容&#xff1a;在excel表格中选中表格数据区域。点击复制&#xff1a;在选中表格区域处右击点击复制。点击选择性粘贴&#xff1a;在表格中鼠标右击点击选择性粘贴。勾选转置&#xff1a;在选择性粘勾选转置选…...

用Bing绘制「V我50」漫画;GPT-5业内交流笔记;LLM大佬的跳槽建议;Stable Diffusion生态全盘点第一课 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f525; 美国升级AI芯片出口禁令&#xff0c;13家中国GPU企业被列入实体清单 nytimes.com/2023/10/05/technology/chip-makers-china-lobbying…...

Java身份证实名认证-阿里云API 【姓名、身份证号】

1. 阿里云API市场 https://market.aliyun.com/products/57126001/cmapi00053442.html?spm5176.2020520132.101.3.a6217218nxxEiy#skuyuncode47442000022 购买对应套餐 2. 复制AppCode https://market.console.aliyun.com/imageconsole/index.htm#/?_kl85e10 云市场-已购买服…...

ND协议——无状态地址自动配置 (SLAAC)

参考学习&#xff1a;计算机网络 | 思科网络 | 无状态地址自动配置 (SLAAC) | 什么是SLAAC_瘦弱的皮卡丘的博客-CSDN博客 与 IPv4 类似&#xff0c;可以手动或动态配置 IPv6 全局单播地址。但是&#xff0c;动态分配 IPv6 全局单播地址有两种方法&#xff1a; 如图所示&#…...

iOS开发UITableView的使用,区别Plain模式和Grouped模式

简单赘述一下 的创建步骤 // 创建UITableView self.tableView [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain]; // 设置数据源和代理 self.tableView.dataSource self; self.tableView.delegate self; // 注册自定义UITableViewCe…...

css美化滚动条

/*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/ ::-webkit-scrollbar { width: 8px; height: 8px; background-color: rgba(0,0,0,.2); } /*定义滚动条轨道 内阴影圆角*/ ::-webkit-scrollbar-track { -webkit-box…...

【CANoe】XML Test Module使用实例

文章目录 一、实操步骤1、增加XML Test Module节点2、配置XML Test Module节点3、XML Test Module节点增加CAPL脚本(.can文件)4、文件夹结构5、使用仿真节点开始测试6、测试结果与测试报告7、同理&#xff0c;在Test Setup也可如此操作 一、实操步骤 1、增加XML Test Module节…...

oracle的update语句where条件后的索引字段为空时不执行

问题描述&#xff1a; update 表名 set age ‘23’ where id1 and name‘lili’; 当在oracle执行以上sql时执行成功&#xff0c;但是当传入的name为null时&#xff0c;sql不成立。我的表中id和name是联合唯一索引&#xff0c;以为name不会为空&#xff0c;但实际上name可以为空…...

RabbitMQ的特点

RabbitMQ是一个开源的消息中间件&#xff0c;用于在不同的应用程序之间进行异步通信。它支持多种消息传递协议&#xff0c;如AMQP、MQTT、STOMP等。 RabbitMQ具有以下特点&#xff1a; 可扩展性&#xff1a;RabbitMQ可以通过添加更多的节点和队列来实现水平扩展。 可靠性&…...

FastAPI API版本控制:URI前缀的终极实现指南

FastAPI API版本控制&#xff1a;URI前缀的终极实现指南 【免费下载链接】fastapi FastAPI framework, high performance, easy to learn, fast to code, ready for production 项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi FastAPI是一个高性能、易于学习…...

KART-RERANK大模型实战:Python爬虫数据智能排序与相关性分析

KART-RERANK大模型实战&#xff1a;Python爬虫数据智能排序与相关性分析 你是不是也遇到过这种情况&#xff1f;用Python爬虫吭哧吭哧抓了一大堆数据&#xff0c;结果发现里面什么都有&#xff1a;有用的、没用的、相关的、跑题的、高质量的、纯广告的……看着满屏的文本&…...

别再死记硬背了!用5分钟搞懂NPN和PNP三极管的电流流向(附快速判断技巧)

5分钟掌握NPN与PNP三极管的电流奥秘&#xff1a;从生活场景到实战技巧 记得第一次拆解收音机时&#xff0c;那些黑色的小方块上延伸出的金属腿让我一头雾水——它们看起来平平无奇&#xff0c;却能控制电流的放大与开关。直到导师用浇花的水管作比喻&#xff0c;三极管的秘密才…...

OpenClaw长期运行方案:nanobot镜像的稳定性优化技巧

OpenClaw长期运行方案&#xff1a;nanobot镜像的稳定性优化技巧 1. 为什么需要关注长期运行稳定性 去年冬天&#xff0c;我部署了一个基于OpenClaw的自动化新闻摘要系统。最初几周运行良好&#xff0c;直到某个凌晨收到服务器告警——进程已经悄悄崩溃了三天。这次教训让我意…...

OpenClaw+nanobot自动化测试:24小时监控网站可用性

OpenClawnanobot自动化测试&#xff1a;24小时监控网站可用性 1. 为什么需要自动化网站监控 作为个人站长&#xff0c;我经常遇到这样的困扰&#xff1a;半夜网站突然宕机&#xff0c;直到第二天收到用户反馈才发现问题。传统监控方案要么价格昂贵&#xff0c;要么配置复杂&a…...

MOOTDX:Python通达信数据接口的量化投资解决方案

MOOTDX&#xff1a;Python通达信数据接口的量化投资解决方案 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx MOOTDX是一个基于Python的通达信数据接口封装库&#xff0c;为量化投资研究者和股票数…...

ZLPhotoBrowser错误处理机制:构建稳定可靠的iOS图片选择器终极指南

ZLPhotoBrowser错误处理机制&#xff1a;构建稳定可靠的iOS图片选择器终极指南 【免费下载链接】ZLPhotoBrowser Wechat-like image picker. Support select photos, videos, gif and livePhoto. Support edit image and crop video. 微信样式的图片选择器&#xff0c;支持预览…...

造相-Z-Image实战案例:4步生成写实质感人像,RTX 4090低步高效实测

造相-Z-Image实战案例&#xff1a;4步生成写实质感人像&#xff0c;RTX 4090低步高效实测 1. 项目简介 造相-Z-Image是一个专门为RTX 4090显卡优化的本地文生图系统&#xff0c;基于通义千问官方的Z-Image模型打造。这个项目最大的特点就是完全针对个人显卡进行深度优化&…...

移动热源坐标参数

comsol激光熔覆仿真模型&#xff0c;热流耦合&#xff0c;包含马兰戈尼非等温模激光熔覆工艺仿真里有个特有意思的物理现象——熔池表面会出现类似水波纹的流动轨迹。这可不是普通的热胀冷缩&#xff0c;而是马兰戈尼效应在金属熔液里跳"物理芭蕾"。咱们今天就用COMS…...

OpenClaw安全指南:Qwen3-32B-Chat本地化执行边界控制

OpenClaw安全指南&#xff1a;Qwen3-32B-Chat本地化执行边界控制 1. 为什么需要关注OpenClaw的安全边界&#xff1f; 去年冬天的一个深夜&#xff0c;我被一阵急促的键盘敲击声惊醒。走进书房&#xff0c;发现OpenClaw正在自动执行我前一天设置的爬虫任务——这本是正常现象&…...