我如何告诉 lpr 命令 (cups) 我的文件实际上是 pdf?
lpr file.pdf
不会打印任何东西。
答案1
至少有两种方法可以转换和打印 PDF 文件。
第一种方法是在 xpdf(PDF 文件查看器)中查看文件,然后左键单击打印机图标。这实际上不会将文件发送到打印机,但它会在同一目录中写入一个 PostScript 文件,其基本文件名与 PDF 文件相同,但具有扩展名.ps
。然后您可以使用 lpr 打印该文件或将其转换为其他格式。
第二种方法是使用 pdf2ps,其中的一部分GS包,将 PDF 文件转换为 PostScript(然后按照上面 xpdf 的描述打印 PostScript 输出)。 pdf2ps 有两个参数:要转换的 PDF 文件的名称和要写入的 PostScript 文件的名称。
要转换 PDF 文件“pricelist.pdf”,请输入:
$ pdf2ps pricelist.pdf pricelist.ps
pricelist.ps
该命令在当前目录中写入一个 PostScript 文件。
答案2
我在尝试使用 Mint 17 中的默认查看器应用程序在佳能喷墨打印机上打印 pdf 文件时遇到了类似的麻烦。我对杯子打印知之甚少,但值得一提的是,这就是我最终如何让一切正常工作的:1 - 我做到了通过安装 Mint 17.2 进行发行版更新,不确定这是否是我最终成功的一个因素。 2 - 我使用在线搜索安装了正确的打印机驱动程序(Canon MX410)。 3 - 我现在确保在启动 Linux 之前打开打印机,以便加载正确的打印机驱动程序。
诚然,没有诊断出最初的问题是相当令人不满意的,但至少我现在很高兴正常打印!
答案3
我如何通过此脚本在命令行 (cli) 中直接打印 PDF bash
:
#!/bin/bash
model=XXX # partial match
dev=$(lpstat -a | awk -v m="$model" '$1 ~ m{print $1;exit}')
if [[ -z $1 ]]; then
echo >&2 "Require PDF file as argument"
exit 1
fi
exec lpr -P $dev -o Resolution=150dpi -o OptionDuplex=False -o PageSize=A4 -o PageRegion=A4 -o Duplex=None -o InputSlot=Auto -o MediaType=Plain -o ColorModel=Gray "$@"