【问题标题】:How to print a PDF file from command line or by npm library?如何从命令行或 npm 库打印 PDF 文件?
【发布时间】:2019-12-06 12:42:49
【问题描述】:

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

  • 从 nodejs 应用打印
  • 从命令行执行。

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

AAAAAAAAAAAA
qwerty
zxcvbnm

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

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

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

编辑 1

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

编辑 2

我找到了解决办法:

  • pdf2ps 文件名.pdf 文件名.ps
  • lpr 文件名.ps

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

【问题讨论】:

标签: node.js linux ubuntu pdf command-line


【解决方案1】:

如果你有或者可以安装enscript,可以试试:

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

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

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

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

编辑:

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

在您的.bashrc 或同等学历中:

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

并以这种方式使用它:

pdfprint filename.pdf

【讨论】:

  • 你说得对,我不是很清楚。我编辑了qestion,不只是一个简单的文本文件,我尝试转换为txt,但它不正确。
猜你喜欢
  • 1970-01-01
  • 2013-10-08
  • 1970-01-01
  • 2017-11-21
  • 2018-03-03
  • 2013-12-14
  • 2018-03-17
  • 1970-01-01
  • 2011-05-29
相关资源
最近更新 更多