使用 cups-pdf 解决 VUE 不支持中文 PDF 导出问题
VUE [1] 是我在 Linux 环境中最喜欢的思维导图软件,以前写过一篇文章 [2] 介绍过它。但是对于中文用户而言,在 VUE 中绘制的思维导图保存为 PDF 文档时,无法显示中文。这是因为 VUE 没有为中文设定正确的 PDF 字体,事实上对于非西文用户都面临这一问题。解决这一问题的方法有两种,一种是对 VUE 的源码进行 dirty hack 与编译,即修改 VUE_SRC/src/edu/tufts/vue/pdf/VueFontMapper.java 文件;另一种是使用 cups-pdf 虚拟 PDF 打印机。由于我不熟悉 Java 编程及 itext 库,所以避重就轻的选择了后者。
确认 cups 服务是否运行
cups 是通用的 Unix 打印系统,各 Linux 发行版通常是默认安装的,但是默认未必启用。在使用 cups-pdf 虚拟打印机时,首先要确定 cups 是否启用。确定 cups 守护进程是否运行的命令如下:
$ ps aux | grep cupsd
如果 cups 守护进程未启用,那么就按照你所使用的 Linux 发行版启用守护进程的方法启用 cups。Gentoo 用户可参考:
$ sudo rc-update add cupsd default $ sudo /etc/init.d/cupsd start
同时我还是一名 Fedora 用户,可使用以下命令开启 cups 服务(>= Fedora 15):
$ sudo systemctl enable cups.service $ sudo systemctl start cups.service
安装 cups-pdf 软件包
Gentoo 用户可使用以下命令安装 cups-pdf 软件包:
$ sudo emerge -av cups-pdf
Fedora 用户则可使用以下命令安装:
$ sudo yum install cups-pdf
其他 Linux 发行版的软件仓库中应该都提供 cups-pdf 安装包,请结合实际情况安装。
cups-pdf 打印机配置
cups-pdf 软件包安装完毕后,还需要将其置于 cups 的掌控方可使用。请开启 Web 浏览器,在地址栏中输入 localhost:631 然后回车,即可开启 cups 配置页面。
点击 cups 配置页面中的『Adding Printers and Classes』链接进入 cups 的打印机管理界面,然后在 Printers 区域点击『Add Printer』链接,这时会跳出一个对话框,要求你输入用户名与密码,如果不想多费周折,可输入 root 用户及其密码,因为 root 用户总是可以拥有 cups 的管理权限的。
如果想使用本机的一般用户帐号,那么需要将该用户添加到 cups 许可的用户组。例如在 Gentoo 中,cups 管理员的用户组为『lpadmin』,而 Fedora 则是『sys』或『root』。要查看 cups 管理员用户组的名字,可在cups 的打印机管理界面中点击『Edit Configure File』链接,查看 cups 配置文件中的『SystemGroup』项对应的值。
将某个一般用户添加到 cups 管理员的用户组,可根据具体情况使用下面的命令:
$ sudo gpasswd -a 用户名 cups管理员用户组名
当输入了正确的用户名与密码后,便开始了添加打印机的过程。关键步骤如下:
第一步:
第二步:
第三步:
第四步:
VUE 的图形打印
对于 VUE 中制作好的思维导图,选择『File』菜单中『Print』项进行打印即可。不过要注意,在 Print 对话框中不要选择『Print to File』,这一选项是输出 ps 文档。因为我们使用的是 cups-pdf 这个虚拟打印机,cups 会将其当作真正的打印机使用的。
另外还要注意,cups-pdf 的打印结果(即 PDF 文档)的保存位置是在 cups-pdf 的配置文件中定义的。该配置文件通常位于 /etc/cups/cups-pdf.conf,打开它可以找到如下的配置段:
### Default: /var/spool/cups-pdf/${USER} #Out /var/spool/cups-pdf/${USER}
默认位置是『/var/spool/cups-pdf/用户名』,也可根据喜好进行定制。例如 Fedora 便将其定义为:
Out ${DESKTOP}
表示打印结果存于 $HOME/Desktop 目录。
参考资料
[1] VUE 项目主页:http://vue.tufts.edu/index.cfm
转载时,希望不要链接文中图片,另外请保留本文原始出处:http://garfileo.is-programmer.com
2011年11月11日 15:01
请问英文系统下,怎么在VUE中输入中文?我这中文全部显示方块
2011年11月11日 15:30
@J: 请搜索一下如何配置 java 的中文字体
2011年11月14日 21:54
多谢:)