<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    The Spark of Thinking

    Focus on Eclipse Tools.

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      3 隨筆 :: 27 文章 :: 4 評(píng)論 :: 0 Trackbacks
    最近調(diào)查了一個(gè)新鮮東東。XSL-FO和FOP,用來將FO文件生成PDF文件,覺得它是個(gè)不錯(cuò)的東東,所以記下來,與大家分享。
    相關(guān)術(shù)語:
    XSL-FO(XML?Stylesheet?Language-Formatting?Objects)
    XSL-T(XSL Transformations)
    FOP?(Formatting?Objects?Processor)?
    英文教程:
    http://www.w3schools.com/xslfo/default.asp
    FOP下載地址:
    http://apache.justdn.org/xml/fop/
    http://www.onjava.com/pub/a/onjava/2002/10/16/fop.html
    注意:fop.jar要放在你的CLASSPATH中。
    ?
    命令格式:
    -------------------------------------------------------------------
    至于XSL-FO的起源,特點(diǎn)和作用我就不多啰嗦了,祥細(xì)說明在網(wǎng)上到處都是,自已去看吧。我只想來點(diǎn)實(shí)用的。在這里只要了解一點(diǎn),XSL-FO他只是描述了頁面展現(xiàn)給用戶的時(shí)候它應(yīng)該是什么樣子的就行了。
    ?
    1:直接將fo文件通過FOP命令轉(zhuǎn)換成pdf文件。
    格式: fop test.fo test.pdf
    ?
    2:將xml+xslt(樣式表文件)轉(zhuǎn)換成pdf文件。
    格式:fop -xsl test.xsl -xml test.xml -pdf test.pdf
    --------------------------------------------------------------------
    ?
    對(duì)雙字節(jié)(中/日文)的支持:
    --------------------------------------------------------------------
    這里我只介紹日文的例子,中文照著做就行了。
    實(shí)現(xiàn)步驟:
    1.使用批處理生成字體文件(XML)
    java -cp build\fop.jar;lib\avalon-framework-cvs-20020806.jar; org.apache.fop.fonts.apps.TTFReader -ttcname "MS Gothic" C:\WINNT\Fonts\MSGOTHIC.TTC msgothic.xml
    注意:TTC文件和TTF文件的生成方式不同。
    上面給出的是TTC字體文件的例子。
    TTF命令格式是:
    java -cp build\fop.jar;lib\avalon-framework-cvs-20020806.jar; org.apache.fop.fonts.apps.TTFReader C:\WINNT\Fonts\Cyberbit.ttf msmincho.xml
    ?
    上面只用到了fop.jar和avalon-framework-cvs-20020806.jar,這因?yàn)槲业腇OP Ver是0.20.5,如果小于這個(gè)版本則要加上其他的包,這個(gè)在網(wǎng)上的教程沒有說,
    結(jié)果我用他們給出的命令格式狂試,結(jié)果就是出錯(cuò),最后還是在apache網(wǎng)上找到了正解,
    擦汗....
    ?
    2.將生成的字體文件注冊(cè)到fop。
    修改下面的配置文件conf/userconfig.xml
    增加下面的內(nèi)容:
    <!-- Example Japanese fonts -->
    ?<font metrics-file="D:\xslfo\fop-0.20.5\msgothic.xml" embed-file="c:\winnt\fonts\msgothic.ttc" kerning="yes">
    ??? <font-triplet name="Gothic" style="normal" weight="normal"/>
    ??? <font-triplet name="Gothic" style="normal" weight="bold"/>
    ??? <font-triplet name="Gothic" style="italic" weight="normal"/>
    ??? <font-triplet name="Gothic" style="italic" weight="bold"/>
    ?</font>
    ?
    3.利用FOP再次生成PDF文件(FOP命令格式有變)
    修改你的FOP.BAT批處理文件,將最后一行
    java -cp "%LOCALCLASSPATH%" org.apache.fop.apps.Fop %1 %2 %3 %4 %5 %6 %7 %8
    ?
    修改成
    java -cp "%LOCALCLASSPATH%" org.apache.fop.apps.Fop -c conf/userconfig.xml %1 %2 %3 %4 %5 %6 %7 %8
    也就是增加了-c conf/userconfig.xml參數(shù)。
    網(wǎng)上很多地方這一點(diǎn)也沒說到,害得我注冊(cè)好字體后怎么試都不成功,生成的PDF就是不能正常顯示日文。后來想想修改后的配置文件沒有用到,到網(wǎng)上查了一下才知道那里要修改一下,增加-c參數(shù),我狂暈~~~~~。
    ?
    要驗(yàn)證你的日文是否被正確顯示,針對(duì)FO文件需要修改以下地方有:
    原:<fo:block font-size="20pt" font-family="serif"
    ??????????????? line-height="30pt">
    ??????? Hello~kaegunテスト
    ????? </fo:block>
    現(xiàn):<fo:block font-size="20pt" font-family="Gothic"
    ??????????????? line-height="30pt">
    ??????? Hello~kaegunテスト
    ????? </fo:block>
    ?
    如果你是用XML+XSLT的方式成生PDF,則要修改xsl文件
    原:<xsl:template match="name">??????
    ?????? <fo:block font-size="18pt"
    ???????????? font-family="serif"
    ???????????? line-height="24pt"
    ???????????? space-after.optimum="15pt"
    ???????????? background-color="blue"
    ???????????? color="white"
    ???????????? text-align="center"
    ???????????? padding-top="3pt">
    ???????? <xsl:value-of select="."/>
    ?????? </fo:block>
    ?</xsl:template>
    現(xiàn):<xsl:template match="name">??????
    ?????? <fo:block font-size="18pt"
    ???????????? font-family="Gothic"
    ???????????? line-height="24pt"
    ???????????? space-after.optimum="15pt"
    ???????????? background-color="blue"
    ???????????? color="white"
    ???????????? text-align="center"
    ???????????? padding-top="3pt">
    ???????? <xsl:value-of select="."/>
    ?????? </fo:block>
    ?</xsl:template>
    經(jīng)過上述操作后,用新的批處理命令即可生成能正確顯示日文的PDF文件了。
    posted on 2006-07-24 10:03 The Spark of Thinking 閱讀(591) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲美女大bbbbbbbbb| 91亚洲导航深夜福利| 亚洲AV无码专区在线观看成人| 久久久久久久91精品免费观看| 亚洲精品免费在线| 日本三级2019在线观看免费| 亚洲人成伊人成综合网久久| 免费三级毛片电影片| 亚洲中文字幕一二三四区| 精品久久免费视频| 无人视频免费观看免费视频| 久久久久亚洲精品男人的天堂| 成人免费av一区二区三区| 久久久久亚洲AV片无码| 黄网站色在线视频免费观看| 亚洲AV无码无限在线观看不卡| 国产男女性潮高清免费网站 | 久久久久久久免费视频| 亚洲精品无码久久久久秋霞| 国产18禁黄网站免费观看| 成人午夜影视全部免费看| 精品亚洲综合在线第一区| 99re6在线精品视频免费播放 | 日本卡1卡2卡三卡免费| 18亚洲男同志videos网站| 扒开双腿猛进入爽爽免费视频| 亚洲日韩在线中文字幕综合| 亚洲一区二区三区无码中文字幕| 久久成人免费大片| 亚洲色精品VR一区区三区| 亚洲精品无码专区2| 免费A级毛片无码A∨中文字幕下载| 亚洲Av高清一区二区三区| 亚洲精品无码AV中文字幕电影网站| 99久久精品免费视频| 亚洲变态另类一区二区三区| 国产av无码专区亚洲av果冻传媒| 国产免费的野战视频| 手机永久免费的AV在线电影网| 亚洲成a人片在线观看中文!!! | 国产亚洲日韩在线三区|