现在已经浪费了 4 米纸卷……
使用的是得力的机器,目前用官方给的标签打印软件倒是工作一切正常。
目前需求是 Electron 调用这台打印机打印一些带有一维码的标签,
标签尺寸为 40mm*30mm,水平 2 列,纸袋宽度约 82mm,纸张间距约为 1.5mm
现在尝试了:
Word:无论如何都会莫名其妙旋转 90 度导致打印出现问题
Electron:
content.print() - web 页面单位均已使用 cm,打印页面尺寸如果设置为 8.1*3.15cm,页面会被切分成无数的块
print 以及 node-print 在 electron 下,无法正常调用 DLL
谢谢各位前辈悉心指教!已成功解决将位图文件打印出来且方向正确的基本需求
windows API 实现打印图片,图片可以通过 canvas 生成所以不是什么太大的问题
细节中,成功创建打印机 HDC 对象之后,使用下列语句创建一个虚拟的适配的 HDC 对象
( C++语言)
HDC virtualDC = CreateCompatibleDC(hdcprint);
然后通过以下语句来把位图( HBITMAP )拷贝到真实打印机上即可
HBITMAP hOldBitmap = (HBITMAP)SelectObject(virtualDC, img0);
BitBlt(hdcprint, 0, 0, 647, 240, virtualDC, 0, 0, SRCCOPY);
最终打印效果和系统内置图像浏览器的打印效果相同
import { print } from "pdf-to-printer";
print("path/to/your/document.pdf").then(() => console.log("打印成功!"));
nw-printer:
跨平台的Node.js打印工具,支持HTML、URL和文件的打印。
提供打印预览功能,并允许自定义页眉和页脚。
易于集成到NW.js或Electron应用中。
electron-tabs(尽管已宣布弃用,但仍值得一试):
专为Electron应用设计的标签页库,提供灵活的视图切换和标签页管理功能。
可以通过JavaScript API方便地添加、删除或控制标签页,可能间接支持标签打印功能。
Node Thermal Printer:
适用于控制热敏打印机的Node.js模块,支持多种品牌和型号。
可以通过简单的API调用打印文本、条形码、二维码等。
示例代码:
const thermalPrinter = require('node-thermal-printer');
thermalPrinter.printer.init().text('Hello, World!\n').cut().execute((err, success) => {
if (err) console.error(err); else console.log(success);
这些库和工具各有特色,选择时可以根据具体需求进行权衡。