Vue3利用vue-plugin-hiprint插件實現(xiàn)無預覽打印功能
前言
在MES管理系統(tǒng)中需要實現(xiàn)條碼數(shù)據(jù)從接口返回后,直接調(diào)用打印機進行打印,跳過瀏覽器的預覽確定那一步。在嘗試很多JS的方式和插件后,都無法實現(xiàn)該功能,因為基本上最后都是使用了Window.pring()方法進行打印,所以需要本地啟動服務調(diào)用打印機,才能實現(xiàn)該功能。
附上該插件的官方文檔 http://hiprint.io/,本文中未提及的功能基本上都能在官網(wǎng)中找到。Gitee鏈接
一、Vue3項目配置
1、安裝vue-plugin-hiprint插件
npm install vue-plugin-hiprint
2、文件引入
//在項目的入口文件中引入所需的CDN
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title>hinnn-hiprint</title>
<!-- hiprint -->
<link href="hiprint/css/hiprint.css" rel="external nofollow" rel="stylesheet">
<link href="hiprint/css/print-lock.css" rel="external nofollow" rel="external nofollow" rel="stylesheet">
<link href="hiprint/css/print-lock.css" rel="external nofollow" rel="external nofollow" media="print" rel="stylesheet">
</head>
<body>
<h1>hiprint 是一款用于web打印的js組件</h1>
<!-- 加載 hiprint 的所有 JavaScript 插件。你也可以根據(jù)需要只加載單個插件。 -->
<!-- polyfill.min.js解決瀏覽器兼容性問題v6.26.0-->
<script src="hiprint/polyfill.min.js"></script>
<!-- hiprint 核心js-->
<script src="hiprint/hiprint.bundle.js"></script>
<!-- 條形碼生成組件-->
<script src="hiprint/plugins/JsBarcode.all.min.js"></script>
<!-- 二維碼生成組件-->
<script src="hiprint/plugins/qrcode.js"></script>
<!-- 調(diào)用瀏覽器打印窗口helper類,可自行替換-->
<script src="hiprint/plugins/jquery.hiwprint.js"></script>
</body>
</html>
3、項目中使用
在使用無預覽打印時如果我們需要對打印內(nèi)容設(shè)置樣式,那我們需要把樣式寫成行內(nèi)樣式不然不會生效.
// 全局引入
// main.ts
import { hiPrintPlugin } from 'vue-plugin-hiprint'
app.use(hiPrintPlugin, '$pluginName')
// 局部引入
import { hiPrintPlugin } from 'vue-plugin-hiprint'
// 頁面中使用
<template>
<div ref="printRef" >
//打印內(nèi)容
</div>
</template>
const printRef = ref();
// 組件
hiprint.init({
host: "https://printjs.cn:17521", // 打印客戶端的地址
token: "vue-plugin-hiprint", // 與打印客戶端相同的 token
})
//初始化
const hiprintTemplate = new hiprint.PrintTemplate()
// printByHtml為預覽打印,直接通過打印某個元素區(qū)域最好用(最好上手)所以使用的是打印html的方式
hiprintTemplate.printByHtml(printRef.value,{});
//printByHtml2方法為直接打印,需要安裝客戶端 下面會提到客戶端的安裝
hiprintTemplate.printByHtml2(printRef.value,{
printer: printerName, // 打印機名稱,不填則默認打印機
title: '任務隊列中名稱'
});
二、安裝客戶端
如果要實現(xiàn)無預覽打印(靜默打印)就需要安裝打印客戶端, 無預覽打印的原理是使用 hiprint 的打印客戶端,它是一個基于 electron 的桌面應用,可以接收來自瀏覽器的打印請求,然后直接調(diào)用本地打印機進行打印。
安裝完成后打開軟件,如果你的前端運行著,就會顯示有本地連接,不然就是沒有連上,需要重新啟動服務。界面如下:


以上就是Vue3利用vue-plugin-hiprint插件實現(xiàn)無預覽打印功能的詳細內(nèi)容,更多關(guān)于Vue3 vue-plugin-hiprint無預覽打印的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
vue中動態(tài)權(quán)限控制的實現(xiàn)示例
動態(tài)權(quán)限控制通過后端獲取用戶權(quán)限數(shù)據(jù),前端動態(tài)生成路由菜單及按鈕權(quán)限,結(jié)合路由守衛(wèi)與自定義指令實現(xiàn)訪問控制,具有一定的參考價值,感興趣的可以了解一下2025-08-08
vue項目接入高德地圖點擊地圖獲取經(jīng)緯度以及省市區(qū)功能
這篇文章主要給大家介紹了關(guān)于vue項目接入高德地圖點擊地圖獲取經(jīng)緯度以及省市區(qū)功能的相關(guān)資料,開發(fā)中我們需要地圖定位,就是用戶輸入位置,自動定位獲取經(jīng)緯度,需要的朋友可以參考下2023-08-08
VUE子組件向父組件傳值詳解(含傳多值及添加額外參數(shù)場景)
這篇文章主要給大家介紹了關(guān)于VUE子組件向父組件傳值(含傳多值及添加額外參數(shù)場景)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09
vue日常開發(fā)基礎(chǔ)Axios網(wǎng)絡庫封裝
這篇文章主要為大家介紹了vue日常開發(fā)基礎(chǔ)Axios網(wǎng)絡庫封裝示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08
Vue實現(xiàn)關(guān)聯(lián)頁面多級跳轉(zhuǎn)(頁面下鉆)功能的完整實例
這篇文章主要給大家介紹了關(guān)于Vue實現(xiàn)關(guān)聯(lián)頁面多級跳轉(zhuǎn)(頁面下鉆)功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03

