0、写在前面的一些提示
- 不要使用太高版本的 NW.js 以及 Node.js,因为 node-printer 会有兼容性问题,目前笔者测试到 node-printer 最高只能在 0.43.x 版本以及低于这个版本的 NW.js 里面正常运行,高于这个版本就会在安装 node-printer 时报错或者程序运行时直接崩溃闪退。并且使用的 Node.js版本应该与 NW.js 里面的 Node.js 版本一致,可以在双击 nw.exe 查看 NW.js 里面的 Node.js 版本,如图:

讯享网

1、下载Nw.js
- 在 https://dl.nwjs.io/ 里面挑选心仪的版本下载,里面有各个操作系统的 SDK 版本以及 NORMAL 版本。下载完解压即可。例如:

2、安装Visual C++ Build Tools 以及 Python 环境
- 为什么需要安装Visual C++ Build Tools 以及 Python 环境?
- 因为要使用 node-printer 的话需要 node-gyp 进行 rebuild,才能在 NW.js 里面使用,不然无法正常使用
- 如果电脑有安装过 Visual Studio 那就可以跳过这一步,如果没有那就需要安装。可以使用 windows-build-tools 来安装这个环境:
npm install --global windows-build-tools - 这个 install 可能会比较久
- 使用 windows-build-tools 安装可能会出现的问题以及缺陷如下:
1、安装的 Python 的版本是 2.7 的,但是事实上最新的 node-gyp 已经要求是 3.x 版本了,我们需要去安装旧版本的 node-gyp。
2、安装完 Python 后依然需要手动配置环境变量,不然无法检测到 Python 环境
3、windows-build-tools 官网上说 npm 安装完会自动执行 windows-build-tools 来给我们安装 Visual C++ Build Tools 以及 Python2.7 环境,但是有时候安装完并没有执行,这时候我们需要到 path/node_modules/windows-build-tools 目录里执行node ./dist.index.js
4、安装 Visual C++ Build Tools 以及 Python2.7 环境时,可能会发生卡住的情况如下图:

这个时候只要去到 C:\Users\用户.windows-build-tools 下双击打开 vs_BuildTools.exe,进入之后勾选 Node.js MSBuild 、Visual C++ Build Tools 支持,然后下载安装即可
5、如果电脑没有 .NET Framework 的环境,顺便下载安装一下:https://dotnet.microsoft.com/download/visual-studio-sdks - 如果不使用 windows-build-tools 安装,可以自行去 Visual C++ Build Tools 以及 Python 官网自行下载安装
3、安装node-gyp

- 使用npm安装:
npm install --global node-gyp - 安装完成把 npm-path/node_modules/node-gyp/src/win_delay_load_hook.cc 替换成 https://github.com/nwjs/nw.js/blob/nw43/tools/win_delay_load_hook.cc
4、安装node-printer
- 使用npm安装:
npm install printer
5、重新构建 node-printer
- 进入 project_path/node_modules/printer 目录在里面执行重新构建的命令:
node-gyp rebuild,显示如下图,即为 rebuild 完成:

6、完成了以上所有步骤之后,就可以在 NW.js 里面快乐的使用 node-printer 操作打印机了
- 可以使用如下代码进行测试
<script> let printer = require("printer") let util = require('util') console.log("installed printers:\n"+util.inspect(printer.getPrinters(), {
colors:true, depth:10})); </script>
讯享网
- 控制台输出了打印机信息就证明可以正常使用了,例如:

参考链接 & 一些有用的链接
- NW.js官方:https://nwjs.io/
- NW.js官方文档:https://nwjs.readthedocs.io/en/latest/,其中最重要的是这个:Use Native Node Modules
- node-gyp:https://github.com/nodejs/node-gyp
- node-printer:https://github.com/thiagoelg/node-printer
- 在nw.js要如何优雅的使用node-printer:https://www.jianshu.com/p/b3c558ddb914






版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/36828.html