fop 中文问题及解决办法

OOo,TeX,KO,ABI,GIMP,Picasa,ProE,QCAD,Inkscape,Kicad,Eagle
回复
ws94501564
帖子: 22
注册时间: 2011-01-15 23:30

fop 中文问题及解决办法

#1

帖子 ws94501564 » 2017-06-12 13:21

2017-05-26 docbook5 转换pdf 过程中遇见的中文不能正常显示的问题
发表评论
首先说说Docbook5转换的过程.
1. ubuntu环境下下载运行如下命令.
sudo apt-get install docbook5-xml docboot-xsl-ns xsltproc fop

2. 简单按照docbook5的写法, 写个简单的书, 作为操作例子.

3. 运行如下命令将书转换为.fo, 其中的**代表合适的文件名
xsltproc **.xsl **.fo

4. 运行如下命令将**.fo文件转换为**.pdf
fop -c **.xml **.fo **.pdf
注意**.xml是一个以xml形式写的一个配制文件, 在你安装了fop时, 它会送一个配置文件, 其名为fop.xconf(这里的fop.xconf文件就是xml文件, 你也可以像上面那样用其它的**.xml代替), 其中是一个配置文件, 说明得很清楚. 就采用该配制文件. 在上面的fop -c **.xml的命令中需要指明这个配制文件. 只要你采用的字体是你系统你面自带的话, 就用不着配置什么了.

如果你要自己配置**.xml这个配制文件的话, 或者是向其中注册新的字体的话(其实也不用, 只要将要注册的字体安装到你的系统里, 就采用他的示例配置文件fop.xconf就可以了.). 就需要用fop-ttfreader程序了(这个程序会在你安装fop的时候自动的安装的)来生成metrics-xml文件, 在配制字体的时候需要用到. 具体命令如下:

fop-ttfreader **.ttf **.xml;
如果是采用**.ttc这样的多字体文件的话, 需要这样用.
fop-ttfreader **.ttc **.xml;
然后它就会提示你, 这个文件中包含几种字体, 它们分别叫什么名字(输出的信息中会出现一些警告信息, 这个信息不用管, 只要提到了包含几种字体, 分别是什么就行了. )
fop-ttfreader -ttcname fontname **.ttc **.xml
这样就可以了.

我以前玩过fop, 当时也是这样解决问题的, 但是久了久了没有用, 导致今天又花了这么多时间去解决这个问题, 主要当时的记录笔记没有写到一个永久的博文上, 才使今天浪费这么时间, 可见平时还是应该多记录. 以便以后少浪费时间.

多提一下, 在配置文件中提到的术语简单说一下.
metrics-url:字体矩阵文件,根据ttc文件生成,kerning为是否允许字间矩调整
font-triplet:字体三元组:名字,样式,重量
更具体的配制文件有说明(fop.xconf中是英文的说明), 有个文章作过作过仔细的研究, 对配置文件的仔细研究

http://supermew.top/?p=1087
fop的man中提到的三个配置文件是不能用的, 主要是没有事例, 因此最好不要用。还有在linux下, 中文字体一般采用ttc的格式, 并且其中含有多个字体。
回复