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

vue实现静默打印pdf

浏览器中想要打印文件,不依靠浏览器自带的打印窗口,想要实现静默打印(也就是不弹出打印对话框),同时控制打印份数的功能,一种方式是使用vue-plugin-hiprint和本地安装客户端electron-hiprint

本来是浏览器去调用打印控件,现在直接在对应电脑上安装程序,然后浏览器去调用该程序。

浏览器 -> electron-hiprint -> 打印
  • vue-plugin-hiprint:https://gitee.com/CcSimple/vue-plugin-hiprint

  • electron-hiprint: https://gitee.com/CcSimple/electron-hiprint

    • 下载地址:https://gitee.com/CcSimple/electron-hiprint/releases
    • 找到指定系统版本,进行下载并安装
    • 【安装注意:安装客户端时请 以管理员身份运行 ,才能成功添加 URLScheme】
    • URLScheme hiprint://
      在这里插入图片描述

实现步骤

安装 electron-hiprint

上面有安装地址,比如windows 64位的选择这个安装包下载,并使用管理员身份安装
在这里插入图片描述
安装完成并启动后
在这里插入图片描述

在vue项目中使用vue-plugin-hiprint

安装包

npm install vue-plugin-hiprint
# 或者
yarn add vue-plugin-hiprint

项目中引入包

// 全局引入
// main.js
import { hiPrintPlugin } from 'vue-plugin-hiprint'
Vue.use(hiPrintPlugin, '$pluginName')// 局部引入(推荐)
import { hiPrintPlugin } from 'vue-plugin-hiprint'

页面中使用

<button @click="print">打印</YsButton>import { hiPrintPlugin } from 'vue-plugin-hiprint'async print() {const printer = hiprint.hiwebSocket.getPrinterList().find(i => i.isDefault); // 获取当前默认的打印机console.log(printer)// hiprint.hiwebSocket.send({ client: 'TEST_PRINT', printer: printer?.name, type: 'url_pdf', pdf_path: 'http://xx.xxx.xx.xx:1123/preview/xxx.pdf' }) // 指定打印机,同时配置客户端的tokenhiprint.hiwebSocket.send({ client: '', type: 'url_pdf', pdf_path: 'http://xx.xxx.xx.xx:1123/preview/xxx.pdf', pages: 1, copies: 2 }) // 设置打印的页数和打印的份数},

如果需要设置客户端的token的话在此处,应用即可。
在这里插入图片描述
有打印成功的状态返回
在这里插入图片描述

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

相关文章:

  • Redis 详解:安装、数据类型、事务、配置、持久化、订阅/发布、主从复制、哨兵机制、缓存
  • 华为AR1200 telnet设置
  • zkPass案例实战之合约篇
  • 使用react的ant-design-pro框架写一个地图组件,可以搜索地图,可以点击地图获取点击的位置及经纬度
  • 彻底禁用windows的语音识别快捷键win+ctrl+s
  • 【计算机视觉】CV项目实战- SORT 多目标跟踪算法
  • 融山科技前端面经
  • Fabric.js 设置画布背景
  • OpenCV 图形API(57)颜色空间转换-----将图像从 RGB 色彩空间转换为 YUV 色彩空间函数RGB2YUV()
  • Ragflow、Dify、FastGPT、COZE核心差异对比与Ragflow的深度文档理解能力​​和​​全流程优化设计
  • python后端程序部署到服务器 Ubuntu并配合 Vue 前端页面运行
  • 【CSS】层叠,优先级与继承(四):层叠,优先级与继承的关系
  • 电液伺服高频应力腐蚀疲劳试验机
  • 长连接、短连接与WebSocket的基本知识
  • Lua 第9部分 闭包
  • uv pip install 的本质是什么?
  • 十大物联网平台-物联网十大品牌
  • Java高级:数据库访问优化
  • 量子混合计算革命:Qiskit 3.0开启云上量子开发新时代
  • 不开启手机调试模式如何开发自动化脚本?
  • 【go】方法与函数区别,函数的内联与逃逸分析
  • Kotlin 边界限制
  • 加油站小程序实战教程14会员充值页面搭建
  • centos stream 10 修改 metric
  • python——模块、包、操作文件
  • 网络原理 - 5(TCP - 2 - 三次握手与四次挥手)
  • 深度解析n8n全自动AI视频生成与发布工作流
  • 多 Agent 系统开发指南:分布式协同、通信机制与性能优化
  • Unity ML-Agents + VScode 环境搭建 Windows
  • Manim让数学动画更有温度