本帖最后由 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);
- });
复制代码
|
|