Node.js打印PDF文件
- 更新:2019-03-23 10:44:17
- 首发:2019-03-23 10:42:48
- 源代码
- 10438
解决方案
在Windows平台,使用Node.js实现原生打印PDF通常需要借助C++。例如node-printer,需要安装Python、Visual Studio,同时还需要使用node-pdfium进行PDF转EMF。
也有一些二进制(exe)命令行打印解决方案,但是都有一些缺陷。
例如:
- 借助 Adobe Reader 或 Acrobat 实现打印,则Windows XP、7、10需要安装不同版本的 DPF 软件,并且在打印时会打开该软件。
- Sumatra PDF可以静默进行命令行打印,但是在80mm热敏纸打印机中的打印效果较差(不清晰)。
理论上这些方案支持所有能在Windows中安装驱动的打印机,包括非串口的热敏纸打印机。大多数方案都是基于PDFium的实现,如果您有足够的时间精力,可以深入研究PDFium
。
安装方法
为了方便大家使用Node.js实现PDF文件的打印,特意整理最佳方案上传为NPM模块:
npm i node-pdf-printer
使用方法
const NodePdfPrinter = require('node-pdf-printer')
NodePdfPrinter.listPrinter() // 列出所有打印机名称
const array = ['C:\\abc\\a.pdf', 'D:\\abd\\b.pdf'] // 待打印文件地址列表
NodePdfPrinter.printFiles(array) // 打印文件到Windows默认打印机
NodePdfPrinter.printFiles(array, printerName) // 打印文件到指定打印机
仅需Node.js环境,借助PDFtoPrinter.exe实现。
开源仓库
https://github.com/yi-ge/node-pdf-printer
支持Electron。如果您使用Electron,请参考:https://github.com/sindresorhus/electron-util#fixpathforasarunpackpath
如需支持双面打印,需要事先修改打印机默认配置。
Linux
及Android
平台的打印
可以参考:CUPS
、GhostScript
、Foo2系列工具(foo2zjs、arm2hpdl等)
、HPijs
。
除特别注明外,本站所有文章均为原创。原创文章均已备案且受著作权保护,未经作者书面授权,请勿转载。
打赏
交流区
暂无内容
老师你好,我希望能用一个openwrt路由器实现IPv4和IPv6的桥接,请问我该如何实现?我尝试了直接新增dhcpv6的接口,但是效果不甚理想(无法成功获取公网的ipv6,但是直连上级路由的其他设备是可以获取公网的ipv6地)
![%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE20241205230845.png](https://cdn.wyr.me/visitor-files/2024-12-05/1733411344287屏幕截图 2024-12-05 230845.png)你好
,为什么我这里是0039 813C 0600 0075 16xx xx xx,只有前6组是相同的,博客中要前8位相同,这个不同能不能照着修改呢?我系统版本是Win1124H2
大神你好,win11专业版24h2最新版26100.2033,文件如何修改?谢谢
win11专业版24h2最新版26100.2033,Windows Feature Experience Pack 1000.26100.23.0。C:\Windows\System32\termsrv.dll系统自带的这个文件,39 81 3C 06 00 00 0F 85 XX XX XX XX 替换为 B8 00 01 00 00 89 81 38 06 00 00 90。仍然无法远程连接。原来是win11 21h2系统,是可以远程链接的。共享1个主机,2个显示器,2套键鼠,各自独立操作 各自不同的账号,不同的桌面环境。
博主,win11专业版24h2最新版,C:\Windows\System32\termsrv.dll系统自带的这个文件,找不到应该修改哪个字段。我的微信:一三五73二五九五00,谢谢