Linux 上的无后台打印程序打印

Linux 上的无后台打印程序打印

我正在尝试让我的 Canon Pixma MG3650 在我的 GNU/Linux(Debian 衍生)上工作

无假脱机打印正是我正在寻找的 无假脱机打印的 openprinting 指南 (指南中提到了优点和缺点)

安装步骤

  1. 从佳能安装的驱动程序dpkg -i cnijfilter2-5.20-1-deb.tar.gz
  2. 我的系统上存在 Ghostscript(用 进行检查gs -h
  3. 发现Canon_MG3600_series.ppdCUPS 安装尾随
  4. 复制到/etc/foomatic/direct/Canon_MG3600_series.ppd
  5. 添加*FoomaticRIPPostPipe: "| cat > /dev/usb/lp0"/etc/foomatic/direct/Canon_MG3600_series.ppd
  6. apt-get install foomatic-filters
  7. apt-get install a2ps
  8. foomatic-rip -P Canon_MG3600_series -o docs /proc/cpuinfo

在步骤 8 上没有打印任何内容:( 没有消息没有错误只是挂起

已在(带有 CUPS 的 Windows 和 Linux)上进行测试,因此打印机正常

我错过了什么吗?也许您知道其他指南/教程吗?

答案1

  1. apt-get 安装 a2ps

这一步安装GNU Anything 到 PostScript 转换器1您提到的命令将以常规方式安装它,即从 Debian APT 存储库下载二进制包并在您的计算机上解压。

所以,如果此安装命令失败或冻结3,您可以安全地中止它(按 Ctrl+C)并重复此步骤直到成功。

尽管,仔细检查您的互联网访问情况在重复之前。2或者,如果您从脱机介质进行安装,请确保插入正确的安装光盘、使其可读并安装在正确的位置。

PS 另外,作为基本保证,如果安装命令结束时没有告诉任何事情3,请在命令结束后立即运行此命令:4

echo $?

如果显示0,则说明 GNU Anything-to-PostScript 安装确实成功;您可以继续执行步骤 8。


脚注

  • 1用于foomatic-rip将纯文本文件转换为 PostScript,这是步骤 8 所需要的,因为您要打印纯文本文件/proc/cpuinfo
  • 2apt-get install互联网连接缓慢/间歇性是无法上网的一个常见原因;但您至少应该在尝试时看到一些状态消息 - 请参阅下一点。
  • 3 apt-get install命令将要通常至少打印某物,即使它对完全损坏的系统或无法运行的网络感到困惑。但在一种不寻常的情况下,您的系统显式将其配置为 shush,请使用-q0参数覆盖 shush 配置指令...

    apt-get install -q0 a2ps
    
  • 4显示上一个命令的退出代码。在任何类 Unix 系统上,值0意味着成功,其他值意味着出了问题。

答案2

我查看了本地foomatic-rip手册页,发现该>部分是有意为之的,因为 PPD 描述符格式的限制——它们由自身在内部处理foomatic-rip;所以OpenPrinting 原创文章实际上是正确的。尽管如此,我仍然强调,这个问题的原始未引用形式是具有误导性的(因为它将正确的错误翻译>为错误的>)。

回到问题上来,我想请你绕过光栅图像处理器内部的一些步骤看看它是否避免了这个问题:

  1. 删除/etc/foomatic/direct/Canon_MG3600_series.ppd文件。
  2. 运行ls -lF /dev/usb/lp0以检查打印机连接是否存在,并且您具有写入该连接的必要权限。
  3. 跑步echo 'Hello Printer?' | foomatic-rip -P Canon_MG3600_series > /dev/usb/lp0

如果您的打印机打印出带有文本的打印件Hello Printer?,那么恭喜您!然后您可以按照以下步骤操作:

  1. 重复您问题中的步骤 3 和 4。
  2. 以 root身份打开/etc/foomatic/direct/Canon_MG3600_series.ppd文本编辑器。
  3. 重复您的问题中的步骤 5 (正如目前所读),但请确保您刚刚插入了该行线*PPD-Adobe: "4.3"
  4. 跑步foomatic-rip -P Canon_MG3600_series /proc/cpuinfo

    • 请注意,-o docs被省略,参见解释下面是有原因的。

笔记:以防那东西仍然冻结;按Ctrl+Z,运行ps fT,运行kill -9 %1;然后将ps fT输出与前 10 行一起附加/etc/foomatic/direct/Canon_MG3600_series.ppd到问题的末尾。 (不要忘记在附加之前使用制表符缩进)

解释

当指定时,我自己的foomatic-rip(4.0.17.256)安装也遇到了麻烦。-o docs由于一个无法解释的原因(即错误),指定该选项导致光栅处理器崩溃在它尝试调用的步骤中a2ps- 它没有正确引用调用命令行......

当使用 运行时-o docs,它尝试在 shell 中运行如下所示的内容:

a2ps -1 --medium=A4dj --center-title=Documentation for the PRINTER/ENGINE (recommended) -o -
  • 您会注意到,选项周围缺少引号,--center-title导致 shell 收到括号,从而导致语法错误。

当 shell 拒绝运行时a2psfoomatic-rip会冻结相当长一段时间;也许正在等待一个永远不会到来的结果。稍等一下,它最终会以退出代码 9 终止,而不会完成打印作业。

如果这被证明是正确的,我可能需要查看最新的 Foomatic 工具链;如果问题仍然存在,请将此错误报告给开发人员。

PS 如果-o docs省略该有问题的选项,foomatic-rip则会要求 shell 运行如下所示的内容:

a2ps -1 --medium=A4dj --center-title=USERNAME@HOSTNAME -o -
  • 该命令行没有引用问题,因此转换、光栅化和打印将正常进行。

相关内容