node.js - 如何从命令行或 npm 库打印 PDF 文件?
问题描述
我需要打印一个 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
这可行,但我想知道是否有直接打印它的解决方案。
解决方案
如果您有或可以安装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
推荐阅读
- redux - 更新单个属性的 Redux 模式是什么
- ruby-on-rails - 如何修复 Rails PostgreSQL 应用程序中的数据库错误?
- wordpress - 从 Wordpress 页面中删除空白
- java - 从 Springboot Web 应用程序启动时无法让 spark-cassandra-connector 工作
- python-3.x - 无法使用 Python 执行 Excel 宏
- javascript - 如何在 Nodejs 中重命名 JSON 元素
- java - 如何强制 SpringBoot 使用多个配置类中的一个且只有一个?
- python-3.x - 为什么 Python 没有在这个看似简单的代码中拼接出换行符?
- ruby - 何时以及何时不使用 ruby 中的初始化方法
- javascript - 查找和删除数组元素