- 論壇徽章:
- 0
|
xsl-fo,fop的簡介,以及中文字體處理
項目需要在評估pdf生成技術(shù),目前知道的有apache的fop和以前使用過的itext。
xsl-fo簡介
fop是基于w3c標(biāo)準(zhǔn)的xsl-fo格式處理,xsl-fo是xsl技術(shù)的一部分,xml文檔的格式化包含兩部分,轉(zhuǎn)換和格式化輸出。xsl針對這兩部分也推出兩套標(biāo)準(zhǔn),xslt和xsl-fo。如果xml只是轉(zhuǎn)換為html這類格式,使用xslt即可,如果要轉(zhuǎn)換到pdf等格式,需要使用xsl-fo。
xsl-fo其實也只是定義了一大堆format object,例如頁面,表格等等,但沒有限定使用什么方式顯示,你可以轉(zhuǎn)換成pdf,svg,甚至gui控件(fop有一種輸出方式就是awt)。所以從xml文件到pdf的流程是:
xslt fop
xml---------->xsl-fo------------>pdf
fop使用:
網(wǎng)上下載fop最新的包,我下載的是fop0.20.5,解開。目錄下有基本命令fop.bat(windows),fop.sh(unix),直接輸入可以看到幫助。很簡單,沒什么好說的。examples/fo下有很多現(xiàn)成的fo文件,演示了fo中的各種格式,可以選擇自己感興趣的看看。
中文處理:
中文是開發(fā)人員心中永遠(yuǎn)的痛。同樣,fop缺省生成的pdf沒法顯示中文。需要經(jīng)過一番處理:
字體注冊:選擇自己要用的字體(例如simsun.ttc),使用fop的TTFReader轉(zhuǎn)換,
java -cp buildfop.jar;libavalon-framework.jar;libxml-apis.jar;libxercesImpl.jar;libxalan.jar org.apache.fop.fonts.apps.TTFReader -ttcname "SimSun" simsun.ttc fontsimsun.xml
編輯自己要用的config文件,cp conf/userconfig.xml myconfig.xml,增加simsun字體
在fo文件中指定使用的字體,下面的文件是改編自examples/embedding/xml/fo/helloworld.fo
你好!
使用fop轉(zhuǎn)換:
fop -c myconfig.xml helloworld_zh.fo -pdf output.pdf
用acrobat reader打開可以看到中文了:),linux下的xpdf也沒有問題
本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u/4200/showart_31762.html |
|