<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 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      3 隨筆 :: 27 文章 :: 4 評論 :: 0 Trackbacks
    最近調查了一個新鮮東東。XSL-FO和FOP,用來將FO文件生成PDF文件,覺得它是個不錯的東東,所以記下來,與大家分享。
    相關術語:
    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的起源,特點和作用我就不多啰嗦了,祥細說明在網上到處都是,自已去看吧。我只想來點實用的。在這里只要了解一點,XSL-FO他只是描述了頁面展現給用戶的時候它應該是什么樣子的就行了。
    ?
    1:直接將fo文件通過FOP命令轉換成pdf文件。
    格式: fop test.fo test.pdf
    ?
    2:將xml+xslt(樣式表文件)轉換成pdf文件。
    格式:fop -xsl test.xsl -xml test.xml -pdf test.pdf
    --------------------------------------------------------------------
    ?
    對雙字節(中/日文)的支持:
    --------------------------------------------------------------------
    這里我只介紹日文的例子,中文照著做就行了。
    實現步驟:
    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,這因為我的FOP Ver是0.20.5,如果小于這個版本則要加上其他的包,這個在網上的教程沒有說,
    結果我用他們給出的命令格式狂試,結果就是出錯,最后還是在apache網上找到了正解,
    擦汗....
    ?
    2.將生成的字體文件注冊到fop。
    修改下面的配置文件conf/userconfig.xml
    增加下面的內容:
    <!-- 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參數。
    網上很多地方這一點也沒說到,害得我注冊好字體后怎么試都不成功,生成的PDF就是不能正常顯示日文。后來想想修改后的配置文件沒有用到,到網上查了一下才知道那里要修改一下,增加-c參數,我狂暈~~~~~。
    ?
    要驗證你的日文是否被正確顯示,針對FO文件需要修改以下地方有:
    原:<fo:block font-size="20pt" font-family="serif"
    ??????????????? line-height="30pt">
    ??????? Hello~kaegunテスト
    ????? </fo:block>
    現:<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>
    現:<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>
    經過上述操作后,用新的批處理命令即可生成能正確顯示日文的PDF文件了。
    posted on 2006-07-24 10:03 The Spark of Thinking 閱讀(591) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 无码少妇精品一区二区免费动态| 两性色午夜视频免费网| 女人18毛片免费观看| 亚洲日本乱码卡2卡3卡新区| 亚洲国产成人久久综合一 | 免费在线观看一区| mm1313亚洲精品无码又大又粗| 免费观看亚洲人成网站| 亚洲精品线路一在线观看| 国产精品美女久久久免费| 国产亚洲美女精品久久久| 最近2019中文免费字幕在线观看| 亚洲国产第一页www| 亚洲免费闲人蜜桃| 亚洲人成网站18禁止| www.亚洲一区| 九九美女网站免费| 亚洲制服丝袜精品久久| 免费看美女让人桶尿口| 4hu四虎免费影院www| 精品亚洲A∨无码一区二区三区| 国产h肉在线视频免费观看| 亚洲AV无码一区二区三区电影 | 91高清免费国产自产| 亚洲AV成人一区二区三区在线看| 国产精品久免费的黄网站 | 亚洲av一本岛在线播放| 在线观看永久免费视频网站| 国产日韩久久免费影院| 亚洲毛片免费观看| 又爽又高潮的BB视频免费看| a在线观看免费网址大全| 亚洲AV综合色区无码二区爱AV| 又粗又大又长又爽免费视频 | 日本人的色道免费网站| 麻豆亚洲AV成人无码久久精品| 国产偷v国产偷v亚洲高清| 一二三四在线播放免费观看中文版视频 | 亚洲AV无码成人精品区蜜桃 | 日韩免费在线观看| 国产免费无码一区二区|