如何从命令行或npm库打印PDF文件?



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

  • 从 NodeJS 应用程序打印
  • 从命令行执行。

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

AAAAAAAAAAAA
qwerty
zxcvbnm

但 LP/LPR 只打印第一行AAAAAAAAAAAA

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

实际使用的打印机:"Xerox WorkCentre 3225",驱动程序同时安装在Windows和Linux上。

编辑 1

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

编辑 2

我找到了一个解决方案:

  • pdf2ps 文件名.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

最新更新