1、功能需求
在进行点击打印调用PDF打印功能时候,每一次打印都需要进行手动预览确认
需要进行批量打印+静默直接打印
2、插件介绍
2.1 基本流程
2.1.1 下载插件,npm i ,npm run start
2.1.2安装依赖
在项目中财用通过 socket.io (默认端口 17521)提供服务。
npm install socket.io-client@4 --save
2.1.3项目引用+创建实例
javascript
import { io } from "socket.io-client";
const Socket = io("http://localhost:17521", {
transports: ["websocket"],
auth: {
token: "vue-plugin-hiprint",
},
});
Socket().on('success', res => {
});
Socket.on('error', err => {
//这里有问题需要自己在源码中进行修改抛出的err.message
});
Socket.on('printerList', printerList => {
console.log('打印机列表', printerList);
});
Socket.on('connect', () => {
console.log('Socket 连接成功');
});
Socket.on('connect_error', () => {
console.log('Socket 错误关闭连接');
getSocket().close();//关闭实例
});
2.1.4 进行各项回调监听
连接成功监听、连接失败监听(文档里没写)、打印成功监听、打印失败监听、获取电脑打印机列表监听(可以主动获取)
2.2进行调用打印
批量打印进行循环调用(批量打印的所有成功失败回调会单独调用监听。需要自己判断成功失败的条数与总数进行二次判断)
javascript
// 非vue-plugin-hiprint
socket.emit("news", {
client,
printer,
type: "url_pdf",
templateId: "自定义Id,用于判断任务是否成功",
pdf_path: "网络PDF的下载url",
});
参数项
javascript
{
client?: string; // 客户端id,连接中转服务必填
printer?: string; // 打印机名称
pages?: string; // 打印页数
subset?: string; // 奇偶页 even、odd
orientation?: string; // 纸张方向 portrait、landscape
scale?: string; // 缩放 noscale、shrink、fit
monochrome?: boolean; // 黑白打印 true、false
side?: string; // 单双面 duplex, duplexshort, duplexlong, and simplex
bin?: string; // select tray to print to
paperName?: string; // 纸张大小 A2, A3, A4, A5, A6, letter, legal, tabloid, statement
silent?: boolean; // Silences error messages.
printDialog?: boolean; // 显示打印对话框 true、false
copies?: number; // 打印份数
}
二开的打包、如果只进行win32进行打包就直接调用打包命令就可以了
如果要打包到别的环境比如linux。mac等 就需要自己进行特定环境打包
也可以在作者分支上fock进行tag再次打包