Firefox 打印中文的解决方法 (转载)
【 以下文字转载自 Firefox 讨论区 】发信人: stoneboy (Adam), 信区: Firefox
标题: Firefox 打印中文的解决方法
发信站: 水木社区 (Sun Oct9 15:20:57 2005), 站内
如果你使用 FreeBSD, Xwindow, 而且使用 CUPS 来打印东西. 请往下看. 使用
Linux 的兄弟也可以看看.
配置 CUPS 的方面, 我就不多说了. 应该是比较容易的. 主要谈谈 Firefox 怎么
在 X 下打印中文的问题.
1. Firefox 的设置
网络上有很多文章都谈到怎么在 X 下打印中文. 如果你的系统已经配置且运行了
Xprt (就是 X Print Server). 那么按照网络上的说法, 在 Firefox 下配置如下
就可以打印中文. 确认你的 about:config 里面有:
font.freetype2.enable true
font.freetype2.printing true
font.directory.tryetype.num 路径 #其中 num 是数字, 路径 代表你的 TrueType 字体
的路径. 比如 /usr/X11R6/lib/X11/fonts/TrueType
还有两个要注意的:
print.postscript.nativecode.zh-CNutf-8|gb2312|big5....
print.postscript.nativefont.zh-CN .... 我的这个为空. 也没什么问题
你的 Firefox 里面有了这些配置以后. 如果 Xprt 已经运行. 那么你可以用
Firefox 菜单 File -> Print... 来查看 Firefox 是否已经联接到 Xprt. 如果
Printer 那一项里面有, "你的打印机的名字@你的机器名字:数字", 那么说明 Firefox
和 Xprt 已经联接上了. 并且 Firefox 可以使用 Xprt 来打印了.
2. Xprt 的设置
第一节的前提是 Xprt 已经配置好. 并已经运行了. 如果你没有安装 Xprt. 怎么办?
请往下看.
Xprt 是 Xwindow 的打印服务器. 目前有两种版本. XFree86 和 Xorg. 你可以根据你的
X 的类型来选择 Xprt. (注: FreeBSD 系统上安装 Xprt, 请同时安装 /usr/ports/shells/bash2 )
安装好以后. 你需要知道三个重要的配置文件. 第一个 xprint.sh第二个 Xprinters
第三个是 printer. 对于 FreeBSD 系统, 这三个文件的位置是: /usr/X11R6/etc/rc.d/xprint.sh
/usr/X11R6/lib/X11/xserver/C/print/Xprinters, 和 /usr/X11R6/lib/X11/xserver/C/print/
attributs/printer.
xprint.sh 是 Xprt 的启动配置文件. Xprinters 和 printer 是 Xprt 配置打印机的文件. 我们来
看看怎么修改这两个文件以达到我们用 Firefox 打印中文的要求.
2.1 xprint.sh 的配置
在 xprint.sh 里面有个函数 setup_config(). 你需要在这个函数体中加入如下一行
让 Xprt 和 CUPS 来配合.
xpstart_options[$num_xpstart]="-XpSpoolerType cups"
这一行的目的是告诉 Xprt 使用 CUPS 来打印.
如果你想让 Xprt 记录 log 文件, 加入如下一行:
xpstart_logfile[$num_xpstart]="/var/log/xprt.log"
当然, 我选的是 /var/log/xprt.log, 你可以选其他的.
2.2 Xprinters 的设置
保证你的 Xprinters 有这么两行:
Augment_PrinterList lpstat -a | cut -d " " -f 1
FreeBSD 用户请使用:
Augment_PrinterList /usr/local/bin/lpstat -a | cut -d " " -f 1
因为 FreeBSD 上的 CUPS 和系统的打印命令冲突. 因此请使用上面的配置.
Printer CUPS_Printer_Name
至关重要的是, CPUS_Printer_Name 是你在 CUPS 中为你的打印机设置的名字. 一定
不要弄错了. 此外, 其他的设置都可以注释掉.
2.3 printer 的设置
保证你的 printer 文件中有如下一行:
*xp-spooler-command: lpr -P%printer-name% -#%copy-count% \
-J %job-name%
FreeBSD 用户请使用 /usr/local/bin/lpr 而不是 lpr.
另外, /usr/X11R6/lib/X11/xserver/C/print/models/PSspooldir/spooldir.sh 是用来控制 Xprt
打印的时候的暂存目录. 默认是 /tmp/Xprinjobs . 如果你是用 Xprt + CUPS, 似乎就不用理这个
文件的设置. 但是保险起见, 为了避免 Xprt 把我的 / 分区给占满了. 我把这个文件中的参数
DEFAULT_SPOOLDIR 设置成了 /var/tmp/Xprintjobs.
当这些设置都完成了以后. 用 /usr/X11R6/etc/rc.d/xprint.sh start 来启动 Xprt 看看.
配置成功的标志是:
运行命令 /usr/X11R6/etc/rc.d/xprint.sh get_xpserverlist 返回的结果是:
你的机器名字:数字
很明显, 你的机器名字就是你的域名. 而后面那个数字是 Xprt 运行在哪个 X
的 DISPLAY 上的标识.
3. 最后的工作
以上的工作都完成以后, 我们还需要一些小小的收尾工作.
要让 Firefox 联接到一个运行的 Xprt 上. 我们还需要一个环境变量 XPSERVERLIST.
对于 FreeBSD 用户,
C Shell: 在 ~/.cshrc 里面写
set xpserverlist = `/usr/X11R6/etc/rc.d/xprint.sh get_xpserverlist`
setenv XPSERVERLIST $xpserverlist
Sh 用户: 在 ~/.profile 里面写:
export XPSERVERLIST=`/usr/X11R6/etc/rc.d/xprint.sh get_xpserverlist`;
对于使用 FVWM 2.5.X 的用户, 请在 ~/.xsession 里面写:
export XPSERVERLIST=`/usr/X11R6/etc/rc.d/xprint.sh get_xpserverlist`;
Xprt 默认用 600 DPI 的格式来打印. 如果你的 CUPS 没有设置为 600 DPI 的格式. 打出来的文档会出乎
你的意料的:)至此, 我们的工作已经完成. 用 Xprt + CUPS 来使 Firefox 打印中文不是什么很难的事情了.
唯一的缺点就是, Xprt 处理中文的速度有一点慢. 赶不上 Windows Internet Explorer 打印文档的速度.
不过, 能用 Firefox 打印中文, 我已经很满足了.
最后, 这个文档适用于 FreeBSD 系统. 但对其他的系统还是有参考的价值. 我觉得主要的区别就是一些细节
方面. 比如配置文件的路径等等.
--- 完
--
Keep It Small, Stupid
[m
[m
页:
[1]