1. 安装cygwin
这一次是在另一台电脑上,尝试搭建出Docbook 5.0的环境。
此台电脑,之前已经过安装过cygwin了。
但是后来运行程序出了问题:
所以,后来,就又重新去下载cygwin的setup.exe,然后打算重新安装。
结果此次安装cygwin的过程中,不知道何种原因,安装出来的cygwin,创建出了一些异常的文件夹,文件夹名称中都带等于号,大括号的那种,所以后来干脆就去彻底删除了此次的所安装的cygwin,结果那些异常的文件夹也删除不掉,后来还是通过360的强制删除,才删掉的。
再后来,就是想要去把旧的,已有的cygwin,卸载掉,但是win7中没有对应的cygwin的卸载选项,所以只好手动删除对应所有相关的文件,包括开始菜单,都全部删除了之后,然后重新下载最新的setup.exe,然后选了163的源,然后完全重新安装。
这一次,找到一个小技巧,那就是,把之前cygwin所下载的本地文件,即在:
cygwin\http%3a%2f%2fmirrors.163.com%2fcygwin%2f\release
下面的所有的已经下载的文件,全部都拷贝到当前正在下载的文件夹中,
这样,cygwin去下载的时候,就会自动检测到本地已经下载的文件,就可以免去了再次下载,大大提高了下载的效率。
提示:上述的中的:
http%3a%2f%2fmirrors.163.com%2fcygwin%2f
用python中的urllib.unquote后,即是163的源地址:http://mirrors.163.com/cygwin/
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32 |
这次的安装,算是比较顺利的,一路下载安装下来,都没问题,只是在最后的postInstall中,出了点小问题:
不过貌似也没啥大影响。
不过后来是参考:cygwin-1.77 postinstall fails on many mirrors – missing packages,去试了试
cygcheck –svr
结果一大堆输出,其中看到了not found vi和vim,但是也懒得管了。
2.建立docbook5环境
在安装cygwin过程中,看到了,原来现在最新版本的cygwin中,已经包含了docbook的相关的很多东西。
关于docbook相关的东西,可以在
http%3a%2f%2fmirrors.163.com%2fcygwin%2f\setup.ini
中找到。
安装完毕后,也可以看到一些和docbook相关的工具:
Administrator@K470 ~ |
本地之前已有已下载并解压后的:
libxslt-1.1.26.win32
不过,cygwin中,现在本身已经安装了对应工具:
Administrator@K470 ~ Administrator@K470 ~ Administrator@K470 ~ |
上面说了,在cygwin安装过程中,都看到过docbook的样式表:docbook-xsl-ns的,所以去找找,安装到了哪里了。
后来找到了,在cygwin下面的:
usr\share\sgml\docbook\xsl-ns-stylesheets\html
中,有我要的docbook.xsl,然后照葫芦画瓢,建个docbook_crl.xsl,写入:
1 2 3 4 5 6 7 8 | <? xml version = '1.0' ?> version = '1.0' > < xsl:include href = "docbook.xsl" /> < xsl:output method = "html" encoding = "UTF-8" indent = "no" /> </ xsl:stylesheet > |
然后去生成html,是OK的:
1 2 | Administrator@K470 /cygdrive/e/Dev_Root/docbook/dev/src $ xsltproc.exe -o output /html/cnBookTest .html /usr/share/sgml/docbook/xsl-ns-stylesheets/html/docbook_crl .xsl cnBookTest.xml |
3.用docbook生产pdf
接着去折腾如何生成pdf。
本地现在已经有了fop-1.0了。
然后去fop文件夹下执行fop结果出错:
Administrator@K470 /cygdrive/e/Dev_Root/docbook/config/tool/fop/fop-1.0 $ ./fop cygwin warning: MS-DOS style path detected: E:\Dev_Root\docbook\config\tool\fop\fop-1.0; Preferred POSIX equivalent is: /cygdrive/e/Dev_Root/docbook/config/tool/fop/fop-1.0; CYGWIN environment variable option "nodosfilewarning" turns off this warning. Consult the user’s guide for more details about POSIX paths: http://cygwin.com/cygwin-ug-net/using.html#using-pathnames Error: JAVA_HOME is not defined correctly. We cannot execute /cygdrive/d/Program Files/Java/jre6/bin;/bin/java |
后来发现,貌似系统有不止一个版本的java:
Administrator@K470 /cygdrive/e/Dev_Root/docbook/config/tool/fop/fop-1.0 $ ./fop Error: JAVA_HOME is not defined correctly. We cannot execute /cygdrive/d/Program Files/Java/jre6/bin;/bin/java Administrator@K470 /cygdrive/e/Dev_Root/docbook/config/tool/fop/fop-1.0 $ which java /cygdrive/c/Windows/system32/java |
所以去删除system32下面的java试试。
不过发现system32下面的java,版本是7.0.10.8,其实是:
D:\Program Files\Java\jre7
的java,而上面环境变量中的java,则写的是
D:\Program Files\Java\jre6\bin
所以,应该去,删除jre6,然后重新设置正确的JAVA_HOME变量。
结果删除了jre6,把JAVA_HOME改为:
D:\Program Files\Java\jre7;
还是不行:
Administrator@K470 /cygdrive/e/Dev_Root/docbook/config/tool/fop/fop-1.0 $ ./fop cygwin warning: MS-DOS style path detected: E:\Dev_Root\docbook\config\tool\fop\fop-1.0; Preferred POSIX equivalent is: /cygdrive/e/Dev_Root/docbook/config/tool/fop/fop-1.0; CYGWIN environment variable option "nodosfilewarning" turns off this warning. Consult the user’s guide for more details about POSIX paths: http://cygwin.com/cygwin-ug-net/using.html#using-pathnames Error: JAVA_HOME is not defined correctly. We cannot execute /cygdrive/d/Program Files/Java/jre7;/bin/java |
后来改为把JAVA_HOME改为:
D:\Program Files\Java\jre7
就可以了:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | Administrator@K470 /cygdrive/e/Dev_Root/docbook/config/tool/fop/fop-1 .0 $ . /fop cygwin warning: MS-DOS style path detected: E:\Dev_Root\docbook\config\tool\fop\fop-1.0; Preferred POSIX equivalent is: /cygdrive/e/Dev_Root/docbook/config/tool/fop/fop-1 .0; CYGWIN environment variable option "nodosfilewarning" turns off this warning. Consult the user's guide for more details about POSIX paths: http: //cygwin .com /cygwin-ug-net/using .html #using-pathnames Exception in thread "main" java.lang.NoClassDefFoundError: org /apache/xmlgraphics/image/loader/ImageContext at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at org.apache.fop.cli.CommandLineOptions.<init>(CommandLineOptions.java:121) at org.apache.fop.cli.Main.startFOP(Main.java:157) at org.apache.fop.cli.Main.main(Main.java:205) Caused by: java.lang.ClassNotFoundException: org.apache.xmlgraphics.image.loader.ImageContext at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 15 more |
但是却发现,运行windows版本的fop却是可以的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 | Administrator@K470 /cygdrive/e/Dev_Root/docbook/config/tool/fop/fop-1 .0 $ . /fop .bat FOP Version 1.0 USAGE fop [options] [-fo|-xml] infile [-xsl file ] [-awt|-pdf|-mif|-rtf|-tiff|-png|-pcl|- ps |-txt|-at [mime]|-print] <outfile> [OPTIONS] -version print FOP version and exit -d debug mode -x dump configuration settings -q quiet mode -c cfg.xml use additional configuration file cfg.xml -l lang the language to use for user information -r relaxed /less strict validation (where available) -dpi xxx target resolution in dots per inch (dpi) where xxx is a number -s for area tree XML, down to block areas only - v run in verbose mode (currently simply print FOP version and continue ) -o [password] PDF file will be encrypted with option owner password -u [password] PDF file will be encrypted with option user password -noprint PDF file will be encrypted without printing permission -nocopy PDF file will be encrypted without copy content permission -noedit PDF file will be encrypted without edit content permission -noannotations PDF file will be encrypted without edit annotation permission -a enables accessibility features (Tagged PDF etc., default off) -pdfprofile prof PDF file will be generated with the specified profile (Examples for prof: PDF /A-1b or PDF /X-3 :2003) -conserve Enable memory-conservation policy (trades memory-consumption for disk I /O ) (Note: currently only influences whether the area tree is serialized.) [INPUT] infile xsl:fo input file (the same as the next) (use '-' for infile to pipe input from stdin) -fo infile xsl:fo input file -xml infile xml input file , must be used together with -xsl -atin infile area tree input file -ifin infile intermediate format input file -imagein infile image input file (piping through stdin not supported) -xsl stylesheet xslt stylesheet -param name value <value> to use for parameter <name> in xslt stylesheet (repeat '-param name value' for each parameter) -catalog use catalog resolver for input XML and XSLT files [OUTPUT] outfile input will be rendered as PDF into outfile (use '-' for outfile to pipe output to stdout) -pdf outfile input will be rendered as PDF (outfile req'd) -pdfa1b outfile input will be rendered as PDF /A-1b compliant PDF (outfile req'd, same as "-pdf outfile -pdfprofile PDF/A-1b" ) -awt input will be displayed on screen -rtf outfile input will be rendered as RTF (outfile req'd) -pcl outfile input will be rendered as PCL (outfile req'd) - ps outfile input will be rendered as PostScript (outfile req'd) -afp outfile input will be rendered as AFP (outfile req'd) -tiff outfile input will be rendered as TIFF (outfile req'd) -png outfile input will be rendered as PNG (outfile req'd) -txt outfile input will be rendered as plain text (outfile req'd) -at [mime] out representation of area tree as XML (outfile req'd) specify optional mime output to allow the AT to be converted to final format later - if [mime] out representation of document in intermediate format XML (outfile req'd) specify optional mime output to allow the IF to be converted to final format later -print input file will be rendered and sent to the printer see options with "-print help" -out mime outfile input will be rendered using the given MIME type (outfile req'd) Example: "-out application/pdf D:\out.pdf" (Tip: "-out list" prints the list of supported MIME types) -svg outfile input will be rendered as an SVG slides file (outfile req'd) Experimental feature - requires additional fop-sandbox.jar. -foout outfile input will only be XSL transformed. The intermediate XSL-FO file is saved and no rendering is performed. (Only available if you use -xml and -xsl parameters) [Examples] fop foo.fo foo.pdf fop -fo foo.fo -pdf foo.pdf (does the same as the previous line) fop -xml foo.xml -xsl foo.xsl -pdf foo.pdf fop -xml foo.xml -xsl foo.xsl -foout foo.fo fop -xml - -xsl foo.xsl -pdf - fop foo.fo -mif foo.mif fop foo.fo -rtf foo.rtf fop foo.fo -print fop foo.fo -awt Administrator@K470 /cygdrive/e/Dev_Root/docbook/config/tool/fop/fop-1 .0 $ . /fop .cmd FOP Version 1.0 USAGE fop [options] [-fo|-xml] infile [-xsl file ] [-awt|-pdf|-mif|-rtf|-tiff|-png|-pcl|- ps |-txt|-at [mime]|-print] <outfile> [OPTIONS] -version print FOP version and exit -d debug mode -x dump configuration settings -q quiet mode -c cfg.xml use additional configuration file cfg.xml -l lang the language to use for user information -r relaxed /less strict validation (where available) -dpi xxx target resolution in dots per inch (dpi) where xxx is a number -s for area tree XML, down to block areas only - v run in verbose mode (currently simply print FOP version and continue ) -o [password] PDF file will be encrypted with option owner password -u [password] PDF file will be encrypted with option user password -noprint PDF file will be encrypted without printing permission -nocopy PDF file will be encrypted without copy content permission -noedit PDF file will be encrypted without edit content permission -noannotations PDF file will be encrypted without edit annotation permission -a enables accessibility features (Tagged PDF etc., default off) -pdfprofile prof PDF file will be generated with the specified profile (Examples for prof: PDF /A-1b or PDF /X-3 :2003) -conserve Enable memory-conservation policy (trades memory-consumption for disk I /O ) (Note: currently only influences whether the area tree is serialized.) [INPUT] infile xsl:fo input file (the same as the next) (use '-' for infile to pipe input from stdin) -fo infile xsl:fo input file -xml infile xml input file , must be used together with -xsl -atin infile area tree input file -ifin infile intermediate format input file -imagein infile image input file (piping through stdin not supported) -xsl stylesheet xslt stylesheet -param name value <value> to use for parameter <name> in xslt stylesheet (repeat '-param name value' for each parameter) -catalog use catalog resolver for input XML and XSLT files [OUTPUT] outfile input will be rendered as PDF into outfile (use '-' for outfile to pipe output to stdout) -pdf outfile input will be rendered as PDF (outfile req'd) -pdfa1b outfile input will be rendered as PDF /A-1b compliant PDF (outfile req'd, same as "-pdf outfile -pdfprofile PDF/A-1b" ) -awt input will be displayed on screen -rtf outfile input will be rendered as RTF (outfile req'd) -pcl outfile input will be rendered as PCL (outfile req'd) - ps outfile input will be rendered as PostScript (outfile req'd) -afp outfile input will be rendered as AFP (outfile req'd) -tiff outfile input will be rendered as TIFF (outfile req'd) -png outfile input will be rendered as PNG (outfile req'd) -txt outfile input will be rendered as plain text (outfile req'd) -at [mime] out representation of area tree as XML (outfile req'd) specify optional mime output to allow the AT to be converted to final format later - if [mime] out representation of document in intermediate format XML (outfile req'd) specify optional mime output to allow the IF to be converted to final format later -print input file will be rendered and sent to the printer see options with "-print help" -out mime outfile input will be rendered using the given MIME type (outfile req'd) Example: "-out application/pdf D:\out.pdf" (Tip: "-out list" prints the list of supported MIME types) -svg outfile input will be rendered as an SVG slides file (outfile req'd) Experimental feature - requires additional fop-sandbox.jar. -foout outfile input will only be XSL transformed. The intermediate XSL-FO file is saved and no rendering is performed. (Only available if you use -xml and -xsl parameters) [Examples] fop foo.fo foo.pdf fop -fo foo.fo -pdf foo.pdf (does the same as the previous line) fop -xml foo.xml -xsl foo.xsl -pdf foo.pdf fop -xml foo.xml -xsl foo.xsl -foout foo.fo fop -xml - -xsl foo.xsl -pdf - fop foo.fo -mif foo.mif fop foo.fo -rtf foo.rtf fop foo.fo -print fop foo.fo -awt |
此处fop/fonts下面也已经有了之前弄好的font了:
Administrator@K470 /cygdrive/e/Dev_Root/docbook/config/tool/fop/fop-1.0 $ ls fonts/ -l total 1716 -rwx——+ 1 Administrators None 551993 Nov 10 22:36 msyh_ttf.xml -rwx——+ 1 Administrators None 564198 Nov 10 22:37 msyhbd_ttf.xml -rwx——+ 1 Administrators None 316624 Nov 10 15:24 simhei.xml -rwx——+ 1 Administrators None 318963 Nov 10 15:03 simsun.xml |
而且fop\fop-1.0\conf\fop.xconf也是之前配置好了的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | < font-triplet name = "SimSun" style = "normal" weight = "normal" /> < font-triplet name = "SimSun" style = "normal" weight = "bold" /> < font-triplet name = "SimSun" style = "italic" weight = "normal" /> < font-triplet name = "SimSun" style = "italic" weight = "bold" /> </ font > < font-triplet name = "SimHei" style = "normal" weight = "normal" /> < font-triplet name = "SimHei" style = "normal" weight = "bold" /> < font-triplet name = "SimHei" style = "italic" weight = "normal" /> < font-triplet name = "SimHei" style = "italic" weight = "bold" /> </ font > < font-triplet name = "Microsoft YaHei" style = "normal" weight = "normal" /> < font-triplet name = "Microsoft YaHei" style = "normal" weight = "bold" /> < font-triplet name = "Microsoft YaHei" style = "italic" weight = "normal" /> < font-triplet name = "Microsoft YaHei" style = "italic" weight = "bold" /> </ font > < auto-detect /> |
然后又重新建立了一个docbook_fo_crl.xsl文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <? xml version = '1.0' ?> exclude-result-prefixes = "db ng exsl" version = '1.0' > <!-- <xsl:import href="C:/docbook/docbook-xsl-1.74.3/fo/docbook.xsl"/> --> <!-- <xsl:import href="E:/Dev_Root/DocBook/config/style/xsl/1.76.1/docbook-xsl-1.76.1/fo/docbook.xsl"/> --> < xsl:import href = "docbook.xsl" /> <!-- <xsl:param name="body.font.family">SimSun</xsl:param> --> < xsl:param name = "body.font.family" >Microsoft YaHei</ xsl:param > < xsl:param name = "monospace.font.family" >SimSun</ xsl:param > < xsl:param name = "title.font.family" >SimHei</ xsl:param > </ xsl:stylesheet > |
放到\usr\share\sgml\docbook\xsl-ns-stylesheets\fo下面,然后去生成fo文件:
1 2 3 | Administrator@K470 /cygdrive/e/Dev_Root/docbook/dev/src $ xsltproc.exe -o output /fo/cnBookTest .fo /usr/share/sgml/docbook/xsl-ns-stylesheets/fo/docbook_fo_crl .xsl cnBookTest.xml Making portrait pages on USletter paper (8.5inx11in) |
后来折腾半天,还是无法在cygwin下使用fop,然后只能在cmd下使用fop:
1 2 3 4 5 6 7 8 9 10 11 | E:\Dev_Root\docbook\config\tool\fop\fop-1.0>fop -c conf\fop.xconf E:\Dev_Root\docbook\dev\src\output\fo\cnBookTest.fo -pdf E:\Dev_Root\docbook\dev\src\output\pdf\cnBookTest.pdf 四月 29, 2012 2:39:03 下午 org.apache.fop.apps.FopFactoryConfigurator configure 信息: Default page-height set to: 11in 四月 29, 2012 2:39:03 下午 org.apache.fop.apps.FopFactoryConfigurator configure 信息: Default page-width set to: 8.26in 四月 29, 2012 2:39:05 下午 org.apache.fop.events.LoggingEventListener processEvent 警告: Font "Symbol,normal,700" not found. Substituting with "Symbol,normal,400" . 四月 29, 2012 2:39:05 下午 org.apache.fop.events.LoggingEventListener processEvent 警告: Font "ZapfDingbats,normal,700" not found. Substituting with "ZapfDingbats,normal,400" . 四月 29, 2012 2:39:05 下午 org.apache.fop.hyphenation.Hyphenator getHyphenationTree 严重: Couldn't find hyphenation pattern zh_cn |
但是生成出来的pdf,中文乱码:
折腾了一会,还是乱码。
看了得回去重新生成对应的font,看看是否可行。
在cmd下运行成功:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | E:\Dev_Root\docbook\config\tool\fop\fop-1.0>java - cp build\fop.jar;lib\avalon-framework-4.2.0.jar;lib\commons-logging-1.0.4.jar;lib\commons-io-1.3.1.jar;lib\xmlgraphics-commons-1.4.jar org.apache.fop.fonts.apps.TTFReader -ttcname SimHei c:\WINDOWS\Fonts\simhei.ttf fonts\simhei.xml TTF Reader for Apache FOP 1.0 Parsing font... Reading c:\WINDOWS\Fonts\simhei.ttf... Font Family: [黑体, SimHei] Creating xml font file ... Creating CID encoded metrics... Writing xml font file fonts\simhei.xml... This font contains no embedding license restrictions. XML font metrics file successfully created. E:\Dev_Root\docbook\config\tool\fop\fop-1.0>java - cp build\fop.jar;lib\avalon-framework-4.2.0.jar;lib\commons-logging-1.0.4.jar;lib\commons-io-1.3.1.jar;lib\xmlgraphics-commons-1.4.jar org.apache.fop.fonts.apps.TTFReader -ttcname SimSun c:\WINDOWS\Fonts\simsun.ttc fonts\simsun.xml TTF Reader for Apache FOP 1.0 Parsing font... Reading c:\WINDOWS\Fonts\simsun.ttc... This is a TrueType collection file with 2 fonts Containing the following fonts: SimSun <-- selected NSimSun Font Family: [宋体, SimSun] Creating xml font file ... Creating CID encoded metrics... Writing xml font file fonts\simsun.xml... This font contains no embedding license restrictions. XML font metrics file successfully created. |
然后再去把:
E:\dev_install_root\cygwin\usr\share\sgml\docbook\xsl-ns-stylesheets\fo\docbook_fo_crl.xsl
改为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <? xml version = '1.0' ?> exclude-result-prefixes = "db ng exsl" version = '1.0' > <!-- <xsl:import href="C:/docbook/docbook-xsl-1.74.3/fo/docbook.xsl"/> --> <!-- <xsl:import href="E:/Dev_Root/DocBook/config/style/xsl/1.76.1/docbook-xsl-1.76.1/fo/docbook.xsl"/> --> < xsl:import href = "docbook.xsl" /> <!-- <xsl:param name="body.font.family">SimSun</xsl:param> --> <!-- <xsl:param name="body.font.family">Microsoft YaHei</xsl:param> --> < xsl:import href = "docbook.xsl" /> < xsl:param name = "body.font.family" >SimSun</ xsl:param > < xsl:param name = "monospace.font.family" >SimSun</ xsl:param > < xsl:param name = "title.font.family" >SimHei</ xsl:param > </ xsl:stylesheet > |
去cygwin中:
1 2 3 | Administrator@K470 /cygdrive/e/Dev_Root/docbook/config/tool/fop/fop-1 .0 $ xsltproc.exe -o /cygdrive/e/Dev_Root/docbook/dev/src/output/fo/cnBookTest .fo /usr/share/sgml/docbook/xsl-ns-stylesheets/fo/docbook_fo_crl .xsl /cygdrive/e/Dev_Root/docbook/dev/src/cnBookTest .xml Making portrait pages on USletter paper (8.5inx11in) |
去cmd中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | E:\Dev_Root\docbook\config\tool\fop\fop-1.0>fop -c conf\fop.xconf E:\Dev_Root\docbook\dev\src\output\fo\cnBookTest.fo -pdf E:\Dev_Root\docbook\dev\src\output\pd f\cnBookTest.pdf 四月 29, 2012 3:29:44 下午 org.apache.fop.apps.FopFactoryConfigurator configure 信息: Default page-height set to: 11in 四月 29, 2012 3:29:44 下午 org.apache.fop.apps.FopFactoryConfigurator configure 信息: Default page-width set to: 8.26in 四月 29, 2012 3:29:45 下午 org.apache.fop.events.LoggingEventListener processEvent 警告: Font "Symbol,normal,700" not found. Substituting with "Symbol,normal,400" . 四月 29, 2012 3:29:45 下午 org.apache.fop.events.LoggingEventListener processEvent 警告: Font "ZapfDingbats,normal,700" not found. Substituting with "ZapfDingbats,normal,400" . 四月 29, 2012 3:29:45 下午 org.apache.fop.hyphenation.Hyphenator getHyphenationTree 严重: Couldn't find hyphenation pattern zh_cn 四月 29, 2012 3:29:45 下午 org.apache.fop.fonts.truetype.TTFFile checkTTC 信息: This is a TrueType collection file with 2 fonts 四月 29, 2012 3:29:45 下午 org.apache.fop.fonts.truetype.TTFFile checkTTC 信息: Containing the following fonts: 四月 29, 2012 3:29:45 下午 org.apache.fop.fonts.truetype.TTFFile checkTTC 信息: SimSun <-- selected 四月 29, 2012 3:29:45 下午 org.apache.fop.fonts.truetype.TTFFile checkTTC 信息: NSimSun |
然后生成的cnBookTest.pdf中的中文就正常了:
4.让docbook用雅黑字体
后来想要折腾雅黑字体,就去给win7安装上雅黑字体,然后再生成对应的font的xml文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | E:\Dev_Root\docbook\config\tool\fop\fop-1.0>java - cp build\fop.jar;lib\avalon-framework-4.2.0.jar;lib\commons-logging-1.0.4.jar;lib\commons-io-1.3.1.jar;lib\xmlgraphics-commons-1.4.jar org.apache.fop.fonts.apps.TTFReader -ttcname msyh c:\WINDOWS\Fonts\msyh.ttf fonts\msyh.xml TTF Reader for Apache FOP 1.0 Parsing font... Reading c:\WINDOWS\Fonts\msyh.ttf... Font Family: [微软雅黑, Microsoft YaHei] Creating xml font file ... Creating CID encoded metrics... Writing xml font file fonts\msyh.xml... This font contains no embedding license restrictions. XML font metrics file successfully created. E:\Dev_Root\docbook\config\tool\fop\fop-1.0>java - cp build\fop.jar;lib\avalon-framework-4.2.0.jar;lib\commons-logging-1.0.4.jar;lib\commons-io-1.3.1.jar;lib\xml graphics-commons-1.4.jar org.apache.fop.fonts.apps.TTFReader -ttcname msyhbd c:\WINDOWS\Fonts\msyhbd.ttf fonts\msyhbd.xml TTF Reader for Apache FOP 1.0 Parsing font... Reading c:\WINDOWS\Fonts\msyhbd.ttf... Font Family: [微软雅黑, Microsoft YaHei] Creating xml font file ... Creating CID encoded metrics... Writing xml font file fonts\msyhbd.xml... This font contains no embedding license restrictions. XML font metrics file successfully created. |
然后新添加了个docbook_fo_cr_yahei.xsl:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <? xml version = '1.0' ?> exclude-result-prefixes = "db ng exsl" version = '1.0' > <!-- <xsl:import href="C:/docbook/docbook-xsl-1.74.3/fo/docbook.xsl"/> --> <!-- <xsl:import href="E:/Dev_Root/DocBook/config/style/xsl/1.76.1/docbook-xsl-1.76.1/fo/docbook.xsl"/> --> < xsl:import href = "docbook.xsl" /> <!-- <xsl:param name="body.font.family">SimSun</xsl:param> --> <!-- <xsl:param name="body.font.family">Microsoft YaHei</xsl:param> --> < xsl:import href = "docbook.xsl" /> < xsl:param name = "body.font.family" >msyh</ xsl:param > < xsl:param name = "monospace.font.family" >msyh</ xsl:param > < xsl:param name = "title.font.family" >msyh</ xsl:param > </ xsl:stylesheet > |
给fop.xconf中添加了:
1 2 3 4 5 6 7 | <!-- <font metrics-url="fonts/msyh_ttf.xml" kerning="yes" embed-url="file:///c:/windows/fonts/msyh.ttf"> --> < font metrics-url = "E:\Dev_Root\docbook\config\tool\fop\fop-1.0\fonts\msyh.xml" kerning = "yes" embed-url = "C:\Windows\Fonts\msyh.ttf" > < font-triplet name = "msyh" style = "normal" weight = "normal" /> < font-triplet name = "msyh" style = "normal" weight = "bold" /> < font-triplet name = "msyh" style = "italic" weight = "normal" /> < font-triplet name = "msyh" style = "italic" weight = "bold" /> </ font > |
然后再去编译:
cygwin中:
1 2 3 | Administrator@K470 /cygdrive/e/Dev_Root/docbook/config/tool/fop/fop-1 .0 $ xsltproc.exe -o /cygdrive/e/Dev_Root/docbook/dev/src/output/fo/cnBookTest_yahei .fo /usr/share/sgml/docbook/xsl-ns-stylesheets/fo/docbook_fo_cr_yahei .x sl /cygdrive/e/Dev_Root/docbook/dev/src/cnBookTest .xml Making portrait pages on USletter paper (8.5inx11in) |
cmd中:
1 2 3 4 5 6 7 8 9 10 11 12 | E:\Dev_Root\docbook\config\tool\fop\fop-1.0>fop -c conf\fop.xconf E:\Dev_Root\docbook\dev\src\output\fo\cnBookTest_yahei.fo -pdf E:\Dev_Root\docbook\dev\src\out put\pdf\cnBookTest_yahei.pdf 四月 29, 2012 4:17:31 下午 org.apache.fop.apps.FopFactoryConfigurator configure 信息: Default page-height set to: 11in 四月 29, 2012 4:17:31 下午 org.apache.fop.apps.FopFactoryConfigurator configure 信息: Default page-width set to: 8.26in 四月 29, 2012 4:17:33 下午 org.apache.fop.events.LoggingEventListener processEvent 警告: Font "Symbol,normal,700" not found. Substituting with "Symbol,normal,400" . 四月 29, 2012 4:17:33 下午 org.apache.fop.events.LoggingEventListener processEvent 警告: Font "ZapfDingbats,normal,700" not found. Substituting with "ZapfDingbats,normal,400" . 四月 29, 2012 4:17:33 下午 org.apache.fop.hyphenation.Hyphenator getHyphenationTree 严重: Couldn't find hyphenation pattern zh_cn |
就可以生成了对应的雅黑字体的中文pdf了。
和之前simsun和simhei对比效果如下:
转载请注明:在路上 » 【记录】另一次的Docbook 5.0的折腾过程