请问在cups下怎么用lp命令打印出中文?

系统字体配置、中文显示和输入法问题
回复
ab13402364
帖子: 3
注册时间: 2014-10-20 16:02
系统: ubuntu12.10

请问在cups下怎么用lp命令打印出中文?

#1

帖子 ab13402364 » 2014-10-20 16:07

我用的是ubuntu系统,用cups来配置打印机,用lp命令打印文本文件。打印英文都没问题,但是打印中文的话要么是乱码,要么干脆就跳过不打。用gedit打印的话都没问题,中文支持的很好,但是在命令行下就不能打出中文,请问我要做哪些配置呢?
对于中文打印支持了解的还不太多,请多帮助!谢谢!
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: 请问在cups下怎么用lp命令打印出中文?

#2

帖子 poloshiao » 2014-10-20 16:47

看看 這些網頁 能否幫你解惑
http://localhost:631/help/options.html? ... ted&QUERY=
http://localhost:631/help/man-lp.html
http://localhost:631/help/man-lpr.html

如果還不行 請提供安裝的印表機驅動套件名稱
ab13402364
帖子: 3
注册时间: 2014-10-20 16:02
系统: ubuntu12.10

Re: 请问在cups下怎么用lp命令打印出中文?

#3

帖子 ab13402364 » 2014-10-20 18:04

谢谢:poloshiao
我先看看
ab13402364
帖子: 3
注册时间: 2014-10-20 16:02
系统: ubuntu12.10

Re: 请问在cups下怎么用lp命令打印出中文?

#4

帖子 ab13402364 » 2014-10-20 18:34

不行啊,没有找到解决的信息。在gedit中,点击直接打印,没有问题,就是想问问,这个直接打印的原理。
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: 请问在cups下怎么用lp命令打印出中文?

#5

帖子 poloshiao » 2014-10-20 20:59

請提供安裝的印表機驅動套件名稱
taohunter
帖子: 1555
注册时间: 2012-03-31 3:29

Re: 请问在cups下怎么用lp命令打印出中文?

#6

帖子 taohunter » 2014-10-20 22:49

ab13402364 写了:不行啊,没有找到解决的信息。在gedit中,点击直接打印,没有问题,就是想问问,这个直接打印的原理。
lp一族的命令是继承自unix的古老的命令,那个时代比UTF-8的诞生早很多,所以导致直接用lp命令打印多字节的UTF-8编码的字符如中文一定是有问题的。这是lp一开始设计时根本没去考虑的因素,不可能“无缝”地支持。之所以UTF-8下英文文本文件可以通过lp正常打印,是因为UTF-8的000000h - 00007Fh部分其实就是ASCII,是在1个字节内的,这是英文ASCII字符比其他UTF-8多字节的文字具有的“先天优势”。

想在它buntu命令行下直接用命令打印包含类似中文的UTF-8纯文本文件,目前最方便的手段是通过paps先将UTF-8的文本文件转换为PostScript的格式,这个格式是可以用lp命令在CUPS下正常打印的。

方法:

代码: 全选

sudo apt-get install paps
cat UTF8_txt_file | paps | lp
装好了paps,以后只要在命令行用第二条命令就能直接打印UTF8的文本文件了(不止中文,包括一切UTF-8编码的语言)。

至于linux打印的原理,不是一两句话可以说清楚的。楼主如有兴趣请自学:字符编码,文件格式,linux驱动模块,linux打印系统的设计原理等专题--其中任何一个专题,真要详细研究下去,都够你读个硕士、博士了。。。但如果楼主对linux/unix有这样一个基本概念,这个问题其实也很好理解:*nix中一切皆文件,打印的过程其实就是读一个文件(如要打印的文档),然后将其按照一定的文件格式写入另一个文件(打印输出文件);之所以出现乱码,就是写文件的时候文件格式错了,因为每条命令都有自己认识的格式和不认识的格式。。。
三年后终于回到16.04--稳定了!
truewq
帖子: 1
注册时间: 2019-08-05 14:41
系统: ubuntu14

Re: 请问在cups下怎么用lp命令打印出中文?

#7

帖子 truewq » 2019-08-05 14:42

我也遇到了类似的问题,经过自己查看源码最终解决了,供大家参考
lp/lpr命令使用cups-pdf成功打印中文
https://www.jianshu.com/p/a6266d7d3059
回复