轶哥

📚 Having fun with AI Agent. Always learning.

    Node.js打印PDF文件
    •   更新:2019-03-23 10:44:17
    •   首发:2019-03-23 10:42:48
    •   源代码
    •   10747

    解决方案

    在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

    如需支持双面打印,需要事先修改打印机默认配置。

    LinuxAndroid平台的打印

    可以参考:CUPSGhostScriptFoo2系列工具(foo2zjs、arm2hpdl等)HPijs

    打赏
    交流区

    暂无内容

    尚未登陆
    发布
      上一篇 (Electron 应用分发系统(Electron自动更新))
    下一篇 (MediaDevices设置音频输出设备)  

    评论回复提醒