打印功能实现--web端+移动端

news/2024/7/7 21:06:16/文章来源:https://www.cnblogs.com/lftBlogs/p/18281354

web端---调用本机的打印机即可

 

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Print Custom Content and Style</title>
<style>
@media print {/* 打印时隐藏页面中的元素 */#header, #footer { display: none; }/* 设置打印页面布局 */body { margin: 0; }
}/* 自定义打印样式 */
.print-content {padding: 20px;background-color: #f0f0f0;border: 1px solid #ccc;
}
</style>
</head>
<body>
<div id="printSection" class="print-content"><!-- 这里放置您想要打印的内容 --><h1>Custom Print Content</h1><p>This is a custom content for printing.</p>
</div><button onclick="printSection()">Print</button><script>
function printSection() {let printContent = document.getElementById('printSection').outerHTML;let originalContent = document.body.innerHTML;document.body.innerHTML = printContent;window.print();document.body.innerHTML = originalContent;
}
</script>
</body>
</html>

 

移动端---使用蓝牙传输

 

<template><van-button type="primary" @click="printToBluetoothPrinter">自定义打印</van-button>
</template><script>
export default {methods: {async printToBluetoothPrinter() {try {const device = await navigator.bluetooth.requestDevice({filters: [{ services: [0x1809] }]});const server = await device.gatt.connect();const service = await server.getPrimaryService(0x1802);const characteristic = await service.getCharacteristic(0x2A06);const printContent = `<h1 style="color: blue;">Custom Print Content</h1><p style="font-size: 16px;">This is a dynamic custom print content.</p>`;const encoder = new TextEncoder();await characteristic.writeValue(encoder.encode(printContent));console.log('Print command sent successfully');} catch (error) {console.error('Error:', error);}}}
};
</script>

 

另附上一个蓝牙连接各阶段可调试:

// 检查浏览器是否支持 Web Bluetooth API
if ('bluetooth' in navigator) {console.log('Web Bluetooth API is supported');// 请求蓝牙设备连接
  navigator.bluetooth.requestDevice({filters: [{ services: [0x1809] }]}).then(device => {console.log('Bluetooth device selected: ', device.name);// 连接蓝牙设备return device.gatt.connect();}).then(server => {console.log('Bluetooth device connected: ', server);// 获取服务和特征值return server.getPrimaryService(0x1802);}).then(service => {console.log('Bluetooth service selected: ', service);return service.getCharacteristic(0x2A06);}).then(characteristic => {console.log('Bluetooth characteristic selected: ', characteristic);// 向蓝牙打印机发送打印指令let printData = 'Hello, Bluetooth Printer!';let encoder = new TextEncoder();return characteristic.writeValue(encoder.encode(printData));}).then(() => {console.log('Print command sent successfully');}).catch(error => {console.error('Error:', error);});
} else {console.log('Web Bluetooth API is not supported');
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/736763.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Filter接口编写过滤器解决post乱码

在使用tomcat9以及之前的版本,request-character-encoding和response-character-encoding使用的字符编码默认不是utf-8,所以导致前端发送到后台的中文乱码.如果使用的是tomcat10以及之后的版本,在apache-tomcat-10.1.25\conf\web.xml已设置好默认的字符集编码为utf-8,如果所示:…

使用EF 连接 数据库 SQLserver、MySql 实现 CodeFirst

1.新建项目,下载Nuget安装包 创建项目需要注意几点,如果是基于 .net framework 的项目 需要选择 相应版本的 EF, 如果是跨平台则选择EF Core版本。 我这里选择的是 .net framework 版本。红框里面是 实现EF Code First 需要的包。对应的版本: EntityFramework 6.3.0 MySql.D…

AGNN论文阅读笔记

Attention-Based Graph Neural Network for News Recommendation论文阅读笔记 Abstract 存在的问题: ​ 用户的历史点击序列信息对用户兴趣的影响也不尽相同,简单地将它们结合起来并不能反映这种差异。 提出方法: ​ 我们提出了一种基于注意力的图神经网络新闻推荐模型。在我…

工程安全监测仪器:振弦采集仪的应用与发展

工程安全监测仪器:振弦采集仪的应用与发展 河北稳控科技振弦采集仪是一种常见的工程安全监测仪器,广泛应用于建筑、桥梁、隧道、地铁等工程项目中。它通过监测振弦的振动变化,可以及时发现结构变形或损坏情况,为工程的安全运行提供重要数据支持。在工程安全监测领域,振弦采…

农业数据智能化:免费可视化工具助力精准农业

免费的可视化工具的应用,不仅极大地提升了农作物监测的效率和准确性,更为智慧农业的发展注入了强劲动力。从传统的“靠天吃饭”到如今的“智慧农业”,数据成为了驱动这一转变的关键力量。随着物联网、大数据、云计算等技术的深入应用,农业生产过程中的各类数据如雨后春笋般…

深度学习--模型优化--模型的剪枝--92

目录1. 模型压缩2. 神经网络剪枝4. 非结构化剪枝4. Pruning neurons结构化剪枝 1. 模型压缩 目的:使得模型体积更小,模型推理速度更快评估指标: Compression Ratio 压缩率 = 总参数量 / 非0参数量 原始网络参数量 / 优化后的网络模型中非0参数量 脱水前的重量 / 脱水后的重量…

thinkphp6 使用FFMpeg获取视频信息

1.本地安装 FFMpeg,官网下载地址:https://ffmpeg.org/download.html#build-windows 解压后,把文件夹放到自定义目录,添加系统变量 2.安装依赖,composer.json 添加"php-ffmpeg/php-ffmpeg": "^0.19.0",3.封装class类<?php namespace app\api\cont…

JDK导入Lets Encrypt根证书

项目在调用https接口时报错:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 原因可能是更新换新证书后,HTTPS 域名的公钥证书不在 JDK/JRE 的证书库中,被Java认为是…

element plus 日历组件默认中文样式,配置日期周一为周起始日

element ui 或者 plus 其实都是西方的展示方式,日立组件的周日视为每一周的开始日期,我们则是周日为每周的最后一天。那咱们要改成周一为每周的开始日期,如下图:elementui 是可以直接属性配置的,element plus不得行,但是配置下面代码到main.ts就可以了~ import ElementPl…

Codeforces Global Round 26 A~C2

惹啊啊啊啊,这场做得我发昏,最近总感觉不在状态,但还是再在冲击1600-1800的题目. A. Strange Splitting---------------------------------题解--------------------------------------------------- 给你一个数组,让你自己构造一个RB字符串让R位置的数组中的数字的最大值-…

搭建工程之一 eclipse 中基于 maven 的 webapp工程能基于tomcat运行

一、背景作为开发人员,开发的web(运行在tomcat 容器中)希望能够在本地开发工具(eclipse)中运行调试,加快开发测试进度。 二、操作步骤 1、创建maven工程 在 eclipse 上右键,选择"New"---"Other" --- "Maven" ---- " Maven Project &…

【PythonGIS】基于Geopandas和Shapely计算矢量面最短路径

在GIS进行空间分析时经常会需要计算最短路径,我也是最近在计算DPC的时候有这方面的需求,刚开始直接是用面的中心点求得距离,但其对不规则或空洞面很不友好。所以今天跟大家分享一下基于Geopandas和Shapely计算矢量面最短路径,这里的最短即点/边的最短!​ 在GIS进行…

ls 设置颜色

1 查看别名对应的真实命令 2 设置颜色 格式: alias 别名=命令 示例 3 取消颜色 示例

主键Id自增,如何获取Id(Dapper)

这里用的是Dapper,以前用EF的时候好像有用到过db.savechanges(). 但是项目中没有这个,所以用以下的方法去获取id 背景:涉及到多表入库,需要获取主表的Id,所以用到了这个(timeFields 可以忽略)/// <summary>/// 单个添加/// </summary>/// <typeparam name…

JDK、Tomcat、Maven配置

一、JDK安装及配置 1.下载地址:https://www.oracle.com/java/technologies/downloads/2.下载后直接本地安装,选择路径默认即可,类似如下路径:C:/Program Files/Java/jdk_1.8.0_301 3. 配置环境变量路径:程序->计算机->右键->属性->高级系统设置->高级->…

VSCode + Qt + QMake 开发编译环境搭建

鉴于Qt官方IDE太过难用,VSCode+各种插件功能强大,遂采用VSCode来写Qt项目; 本博客在 Windows 平台进行指导操作,Mac、Linux 平台配置方式类似,学习其本质就可。前置准备VSCode,最新版本即可 本地 Qt 环境,版本随意,本文主要针对较老版本使用Qmake构建系统的项目环境变…