Chinaunix首页 | 论坛 | 博客
  • 博客访问: 901164
  • 博文数量: 436
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: -103
  • 用 户 组: 普通用户
  • 注册时间: 2016-08-01 09:48
个人简介

爱生活,爱IT

文章分类

全部博文(436)

文章存档

2015年(1)

2014年(2)

2013年(6)

2011年(39)

2010年(176)

2009年(30)

2008年(28)

2007年(54)

2006年(91)

2005年(9)

分类: LINUX

2006-01-17 18:50:59

Slackware 9.0的中文打印
2005-08-24 10:00 am
作者:linux宝库 ()
来自:linux宝库 ()
联系:linuxmine#gmail.com

软硬件配置:
- 操作系统:Slackware 9.0
- 打印机:HP LaserJet 6L
- 打印服务程序:CUPS 1.1.18
- ghostscript 7.05
- Mozilla 1.4 中文版

说明:下面的操作几乎都需要root权限。

一、安装打印服务程序
Slackware 9.0 默认的打印服务程序是lpd,而现在更流行的是CUPS,设置也非常简单。可以到slackware下载的镜像站,在发行版本的 extra目录中下载,目前的版本是cups-1.1.18。用installpkg安装。
安装完毕后,会在/etc/rc.d/目录生成rc.cups文件,用root身份,运行 /etc/rc.d/rc.cups start ,即可启动cups打印服务。用浏览器访问 即可对cups和打印机进行设置,详情请看cups的文档。
添加打印机并成功打印出测试页之后,gedit和starsuite就直接能在我的HP LJ6L打印出中文。


二、设置ghostscript的中文支持
许多程序能够通过ghostscript生成postscript文件(.ps),如果能使ghostscript支持中文,就能够间接支持这些程序的中文打印。Slackware9.0自带的ghostscript是7.05版。

1. 下载CMap字体文件

ftp://ftp.gyve.org/pub/gs-cjk/adobe-cmaps-200211.tar.gz
ftp://ftp.gyve.org/pub/gs-cjk/acro5-cmaps-2001.tar.gz

把上面两个文件解压缩到/usr/share/ghostscript/Resource目录(如果没有这个目录,请自己mkdir)

cp adobe-cmaps-200211.tar.gz /usr/share/ghostscript/Resource
cp acro5-cmaps-2001.tar.gz /usr/share/ghostscript/Resource
tar zxvf adobe-cmaps-200211.tar.gz
tar zxvf acro5-cmaps-2001.tar.gz
rm *.gz

再建两个字体目录:
mkdir /usr/share/ghostscript/Resource/CIDFont /usr/share/ghostscript/Resource/Font


2.下载freetype-1.3.1(后面的ttfm需要)



下载源码,自行编译安装,完成后运行 ldconfig 更新库文件索引


3. 下载ttfm



下载 ttfm-1.0-6.i386.rpm 和 gscjk.ttfm

安装:
rpm -ivh ttfm-1.0-6.i386.rpm --nodeps
cp gscjk.ttfm /usr/share/fonts/install/


4.安装中文字体
我用的是ms windows提供的simsun.ttf, simhei.ttf, simkai.ttf 和simfang.ttf
把这四个字体放到 /usr/share/fonts/ttf目录中,也可以仅在这个目录里建立指向字体所在路径的符号链接。
然后:

cd /usr/share/fonts/install
ttfm.sh --initm gscjk.ttfm

这样就会在 /usr/share/ghostscript/Resource/CIDFont 和 /usr/share/ghostscript/Resource/Font 目录中生成对上面四种中文字体的描述文件。


5.让ghostscript启动时自动加载我们安装的中文字体

首先,修改 /usr/share/ghostscript/7.05/lib/gs_res.ps 文件,在其中找到这样两行:

/FontResourceDir (/usr/share/ghostscript/fonts/) readonly .forcedef
/GenericResourceDir (/usr/share/ghostcript/) readonly .forcedef

改为:
/FontResourceDir (/usr/share/ghostscript/Resource/Font/) readonly .forcedef
/GenericResourceDir (/usr/share/ghostscript/Resource/) readonly .forcedef

然后,建立CIDFnmap文件:
touch /usr/share/ghostscript/7.05/lib/CIDFnmap.zh
编辑这个文件,输入下面的内容:

源码:
/SimSun (/usr/share/fonts/ttf/simsun.ttf) 1 ;
/SimHei (/usr/share/fonts/ttf/simhei.ttf) 1 ;
/FangSong_GB2312 (/usr/share/fonts/ttf/simfang.ttf) 1 ;
/KaiTi_GB2312 (/usr/share/fonts/ttf/simkai.ttf) 1 ;

/Adobe-GB1 /SimSun ;
/STSong-Light /SimSun ;
/STFangsong-Light /FangSong_GB2312 ;
/STHeiti-Regular /SimHei ;
/STKaiti-Regular /KaiTi_GB2312 ;


这个文件指明了TrueType字体的路径,并建立了字体的别名。如果需要繁体中文,可以根据上面的原理自己添加Mingliu等字体。

最后,编辑/usr/share/ghostscript/7.05/lib/CIDFnmap,在文件末尾加入一行:

(CIDFnmap.zh) .runlibfile

6.测试

cd /usr/share/ghostscript/7.05/examples/cjk
gv gscjk_ag.ps

如果能看到四种字体的汉字,说明ghostscript简体中文字体设置成功。

三、设置mozilla支持中文打印
编辑 mozilla安装目录里面的/defauts/pref 目录下的 unix.js 文件,找到相应的行改成如下内容,如果没有这些行,自己增加。

pref("print.postscript.nativecode.zh-TW", "gbk");
pref("print.postscript.nativefont.zh-TW", "SimSun-GBK-EUC-H");
pref("print.postscript.nativecode.zh-CN", "gbk");
pref("print.postscript.nativefont.zh-CN", "SimSun-GBK-EUC-H");

完成后,存盘,重新启动mozilla。
如果直接让mozilla输出到打印机,中文不能正常打印而是以方框显示。因此需要采用间接的方法,打印时,选择打印到文件 mozilla.ps,然后:

ps2ps mozilla.ps out.ps
lpr out.ps

也可以先打印成mozilla.ps,然后选择菜单的“文件/打印/打印机属性”,在打印命令栏设定如下:

ps2ps mozilla.ps out.ps && lpr out.ps && rm mozilla.ps out.ps -f

以上命令输入一次后就不用再输入第二次了。再选直接打印到打印机,每次打印完后会把/home/USER目录下的mozilla.ps和out.ps文件删掉,以便下次打印其他文档。
这样就实现了mozilla的中文打印(谢谢kite兄指教)。


四、其他程序的中文打印
试验过gedit和starsuite6.0,均在安装cups并设置好打印机后,直接支持中文打印。
abiword的中文打印支持需另行设置,我没有测试,请参考最后附的参考文档。
其他的程序,如果直接打印不支持中文,可看看其是否有生成.ps文件的打印选项,然后尝试类似mozilla的方式进行打印。
基于qt的程序按上面的方法设置后似乎还不能支持中文打印,我测试过kedit,中文打印出来是乱码。

参考文档:《Slackware 8.1上的中文列印》


阅读(2086) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~