我需要打印 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
,因为我认为 ps2pdf
是 ghostscript
的一部分。
我只将转换为 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/