lpr 支持 utf-8 编码

lpr 支持 utf-8 编码

lpr当尝试通过from将文本文件发送到打印机时xterm,内容被损坏得无法识别,其原因最终可追溯到文件的编码。如果我用iconv(例如)处理文本iconv -f utf-8 -t ascii//TRANSLIT,则文件将正常打印。我遇到的另一个建议是设置文档格式(例如lpr -o document-format=text/utf8),但这会返回错误lpr: Unsupported document-format "text/utf8"。我总是可以为lpr命令添加别名以包括通过 进行处理,但是/系统iconv中是否有更通用的方法来支持本机 utf-8 ?CUPSlpr

编辑:我的操作系统是 Debian 8,我的窗口管理器是openbox(无桌面环境)。我可以在 MacOS X 以及 Debian7/Gnome3 系统上毫无问题地打印此文件。

在我当前的系统中,我应该指出,即使将字符编码从 UTF-8 更改为 ASCII 后,换行符也不受 尊重lpr,因此这些行会连接在一起并打印,直到达到纸张边距。在 MacOS X 上重新编码和音译后iconv,打印仍然正常(因此换行问题也是我当前系统特有的)。

答案1

pas 也可以做同样的事情;

#!/bin/bash
#This script converts UTF-8 txt to postscript
paps | lpr
Sometimes you need to specify the prinqueue;

#!/bin/bash
# This script converts UTF-8 txt to postscript
paps | lpr -P lj

Paps 比 cups 的 texttop 做得更好。

答案2

我不知道您是否认为 HPLIP 是外部依赖项,但这里是直接来自 CUPS 的官方驱动程序推荐。

CUPS 打印机驱动程序:HP4650

这是包信息Debian 仓库:HPLIPS

正如 Suchhi 所说,如果不使用 paps 等工具,您的系统不知道如何光栅化文档。安装 hplip 软件包并将其配置为http://localhost:631使用推荐的驱动程序将解决您的问题。欲了解更多信息,请参阅DebianWiki 上的 SystemPrinting 条目

答案3

我遇到了同样的问题,以下方法帮助我解决了这个问题:

http://www.bsmdevelopment.com/Reference/Tech_20130004.html

真的很棒。您甚至可以选择用于文本/普通打印的字体,例如 FreeMono 或 Courier。

干杯,

答案4

你应该有类似的东西:

text/plain              application/postscript  33      texttops

在你的/etc/cups/mime.convs文件中。所以,我认为需要做的是修复 texttops 过滤器。在 Debian 下,它是/usr/lib/cups/filter/texttops,它是一个使用 texttopdf 过滤器和pdf2ps命令的 shell 脚本。您可以尝试将 texttopdf/pdf2ps 调用替换为paps,但请注意参数不相同。最小的(因为文本被提供到标准输入并且 ps 结果被发送到标准输出)将是仅包含以下内容的行:

paps

但您可能想添加选项,例如:

paps --font='Monospace 10'

注意:我没有尝试过。只是猜测...

相关内容