node.js - 如何从命令行或通过 npm 库打印 PDF 文件?

标签 node.js linux ubuntu pdf command-line

我需要打印 PDF 文件,我有两个选择:

  • printing from nodejs app
  • executing from command line.

从 Node 我尝试过“打印机”,“Node native 打印机”,“Node 打印机”库,但是当我尝试打印我的PDF时,我得到很多页面,每个页面都打印了文件的源代码。 从命令行,我尝试了 lp/lpr,在这种情况下,我得到了相同的结果,很多带有源代码的页面(就好像我用文本编辑器打开 PDF 并打印您可以在其中看到的内容一样)。 我还尝试制作一个像这样的 .txt 文件:

AAAAAAAAAAAA
qwerty
zxcvbnm

但是 lp/lpr 只打印第一行AAAAAAAAAAAA

我也在 Windows 中尝试过,从命令行(PDFtoPrinter 命令)正确打印 PDF。

实际使用的打印机:“Xerox WorkCentre 3225”,在 Windows 和 Linux 上均安装了驱动程序。

编辑 1

我的 .pdf 文件不仅仅是一个文本文件,它包含文本、条形码等,因此我无法转换为 txt。

编辑2

我找到了解决方案:

  • pdf2ps filename.pdf filename.ps
  • lpr filename.ps

这可行,但我想知道是否有直接打印它的解决方案。

最佳答案

如果您有或可以安装enscript,您可以尝试:

enscript file.txt -o - | ps2pdf - text.pdf | lp -d <PRINTERNAME>

您可能还需要安装 ghostscript,因为我认为 ps2pdfghostscript 的一部分。

我只将转换为 PDF 部分,因为您给出了一个带有文本文件的示例,并且还提到了一个打印有代码的页面,所以也许 txt 和 pdf 之间存在一个转换步骤,会输出格式错误的内容。

要知道打印机名称,您可以运行lpstat -p -d。它将显示可用打印机的列表。

编辑:

好吧,我看到了您的编辑,在这种情况下,您仍然可以编写一个 shell 函数来一次性完成所有这些操作。它并没有完全回答你的问题,但同样看起来很无趣。

在您的 .bashrc 或同等内容中:

function pdfprint() {
  pdf2ps "$1" | lpr
}

并以这种方式使用它:

pdfprint filename.pdf

关于node.js - 如何从命令行或通过 npm 库打印 PDF 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57249365/

相关文章:

linux - 使用 awk 或 sed 比较两个文件的值并将文件 2 到文件 1 的信息附加到新文件 file3

python - 为什么我每次打开新终端时都必须返回 "source vitrualenvwrapper.sh"?

node.js - 如何在返回 Promise 的同时添加 catch

unix - 须藤路径 - 没有找到 Node.js

node.js - 配置 AWS Elastic Beanstalk Nginx 以使用 socket.io 连接的主要问题

linux - C 中意外的段错误

python latin-1 UnicodeDecodeError 在使用 couchdb cPickle 二进制数据切换到 ubuntu 14 后

jquery - 如何设置授权 header value ?

linux - 在 Ubuntu 上安装 arm-linux-gnueabihf-g++ 时遇到问题

linux - 在 bash 中获取文件指针并任意读取行