<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲毛片αv无线播放一区| 亚洲18在线天美| 99久9在线|免费| 久久精品国产亚洲AV忘忧草18| 成人午夜视频免费| 一级**爱片免费视频| 亚洲视频在线一区二区三区| 免费精品一区二区三区在线观看| 羞羞视频在线观看免费| 久久精品国产精品亚洲毛片| 波多野结衣久久高清免费 | 51精品视频免费国产专区| 亚洲熟妇AV一区二区三区浪潮| 亚洲一级片免费看| 人妻视频一区二区三区免费| 男女男精品网站免费观看| 亚洲精品福利网站| 国产成人毛片亚洲精品| 亚洲中文无码永久免费| 国产又黄又爽又大的免费视频| 亚洲AV无码一区二区三区牛牛| 亚洲无码在线播放| 国产国产成年年人免费看片| 99免费观看视频| 一区二区三区视频免费| 亚洲精品天堂在线观看| 国产亚洲精品国产| 一区二区三区亚洲视频| 久久受www免费人成_看片中文| 成人免费ā片在线观看| 亚洲av成人一区二区三区在线播放 | 亚洲国产精品成人综合色在线| 亚洲AV无码精品色午夜果冻不卡| 在线观看免费亚洲| 免费成人福利视频| 久久久国产精品福利免费| 大片免费观看92在线视频线视频| 亚洲国产系列一区二区三区| 亚洲综合一区二区国产精品| 国产亚洲成人久久| 亚洲av区一区二区三|