lovert 发表于 2023-5-21 22:28:24

静默打印方案

本帖最后由 lovert 于 2023-5-24 16:54 编辑

第一步
需要下载安装本地打印服务器
https://gitee.com/CcSimple/electron-hiprint/releases/tag/1.0.6
第二步上传socket.io.min.js

第三步
方法一:直接本地获取html,会出现CSS无法获取到

方法二:用服务端命令,获取的html里的CSS已经被服务端命令转内联style,缺点是根据测试结果用服务端命令会出现很长时间的延迟,有时会出现js已经执行了,html还没有返回的情况





1.代码说明:
var socket = io.connect('http://localhost:17521');//连接打印服务器,此处的localhost可以改成安装打印服务器电脑的内网IP,端口号17521不要变
socket.emit("news", {html: Forguncy.CommandHelper.getVariableValue("html2"),});//这个是发送html代码字符串到打印服务器进行打印,格式是socket.emit("news", {json对象});

socket.emit("news", {json对象});
{json对象}设置如下,html是必填的,其他可以选填,不填使用默认
{
html:html,// html字符串
printer:printer,// 设置打印机
silent: data.silent ?? true, // 静默打印
printBackground: data.printBackground ?? true, // 是否打印背景
deviceName: deviceName, // 打印机名称
color: data.color ?? true, // 是否打印颜色
margins: data.margins ?? {marginType: "none",}, // 边距
landscape: data.landscape ?? false, // 是否横向打印
scaleFactor: data.scaleFactor ?? 100, // 打印缩放比例
pagesPerSheet: data.pagesPerSheet ?? 1, // 每张纸的页数
collate: data.collate ?? true, // 是否排序
copies: data.copies ?? 1, // 打印份数
pageRanges: data.pageRanges ?? {}, // 打印页数
duplexMode: data.duplexMode, // 打印模式
simplex,shortEdge,longEdgedpi: data.dpi, // 打印机
DPIheader: data.header, // 打印头
footer: data.footer, // 打印尾
pageSize: data.pageSize, // 打印纸张
}打印结果回调函数,监听打印结果是否成功
socket.on("successs", (successs) => {
console.log(successs);
});
socket.on("error", (error) => {
console.log(error);
});
获取系统打印机列表
socket.on("printerList", (printers) => {
//printers是存打印机名称的数组
console.log(printers);
});


gczxxu 发表于 2023-5-21 23:26:06

:hjyzw:

happyboyjia 发表于 2023-5-24 16:46:36

:hjyzw:

KinShing 发表于 2023-10-15 00:04:49

:hjyzw:牛逼
页: [1]
查看完整版本: 静默打印方案