亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3195 | 回復(fù): 1
打印 上一主題 下一主題

使用Apache FOP將Docbook轉(zhuǎn)換成PDF文檔 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-01-25 20:49 |只看該作者 |倒序?yàn)g覽

               



使用Apache FOP將Docbook轉(zhuǎn)換成PDF文檔
在翻譯的
Spring Live
的時(shí)候,我就選擇了使用 DocBook 來組織文檔。但是當(dāng)我試圖使用 Apache FO 把它轉(zhuǎn)換成 PDF 時(shí),問題就出現(xiàn)了。
實(shí)際上,到現(xiàn)在為止,我都沒有用FOP來真正的轉(zhuǎn)換我的 DocBook 源文件。Spring Live 的PDF文檔最終還是由
RenderX
的 XEP 免費(fèi)個(gè)人版來轉(zhuǎn)換的。
使用Apache FOP,首先是要解決的是中文字體支持問題,操作起來比較復(fù)雜,一般要經(jīng)歷兩個(gè)步驟。
1.要支持truetype字體,首先是要生成metrics文件,并且在fop配置文件中進(jìn)行配置。
2.然后自定義xsl中字體相關(guān)的屬性。
這里不再重復(fù)其步驟細(xì)節(jié),具體可以參考:
Apache FOP: Configuration

使用FOP將中文DocBook xml轉(zhuǎn)換成pdf的實(shí)現(xiàn)記錄
用Google搜索的話可以更多的相關(guān)的解決方案,大多是針對(duì)早期的0.20.5的版本。
可喜的是最新的Apache FOP 0.95的字體配置已經(jīng)大大簡(jiǎn)化,支持自動(dòng)掃描。參見:
Apache FOP: Fonts

/usr/share/fonts/truetype/
  
第一種方法,在配置文件fonts 標(biāo)簽使用directory,指定字體目錄,它有一個(gè)可選的屬性recursive,設(shè)置為true的話,會(huì)查找子目錄中安裝的字體文件。
第二種方法,使用,它會(huì)自動(dòng)掃描系統(tǒng)的字體目錄,如Windows系統(tǒng)盤下的C:\Windows
\Fonts,及Linux下的~/.fonts,/usr/share/fonts, /usr/local/share/fonts等。
第一次掃描之后,F(xiàn)OP會(huì)將字體信息寫入cache,之后使用就會(huì)讀cache了,不會(huì)再掃描字體了,默認(rèn)cache存放位置是~/.fop/下面。建議在linux下指定directory的方式,不然的話cache文件體積也比較驚人。
但是FOP生成的pdf文檔仍然無法讓我滿意。
當(dāng)我想在設(shè)置font.family使用字體簇時(shí),F(xiàn)OP 0.95無法支持。比如我的設(shè)置為:
'Garamond','SimSun'
'Georgia','SimHei'
這種設(shè)置的好處是,英文中文分別使用不同的字體輸出。
由于Docbook XML生成的FO文件中,默認(rèn)字符輸出使用character-by-character策略,F(xiàn)OP居然還是漢字當(dāng)成英文字符來處理,導(dǎo)致漢字輸出全部為方框。
在滿江紅翻譯的Hibernate 中文文檔時(shí),使用FOP轉(zhuǎn)換,正文僅設(shè)置使用了SimSun(這樣文中的英文字符也是用SimSun生成的),導(dǎo)致文檔字體千篇一律,整個(gè)文檔看起來過于“樸素”。
當(dāng)我從svn上取得最新的源代碼,重新編譯使用后,發(fā)現(xiàn)這個(gè)問題已經(jīng)不存在了,F(xiàn)在 FOP 終于可以支持字體簇了,參見,
FontSelectionStrategy
。
從源代碼編譯的方法參見:
Apache FOP: Building from Source Code

生成的pdf效果如下。


中,上面部分是FOP生成的,下面是用XEP來生成的。FOP生成的文檔依然有缺陷,中英字符的對(duì)齊方式與XEP有不同,如果用標(biāo)準(zhǔn)的英文書寫所用四線格
來說明的話,在FOP中生成的中文底部是與英文底線持平的,而在XEP,中文相對(duì)來說向上移了一格,看起來也比較美觀。
其它中文問題,如換行時(shí)標(biāo)點(diǎn)位置判斷的問題,list的前面的符號(hào)顯示問題,還沒有進(jìn)行測(cè)試。
               
               
               
               
               

本文來自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/1096/showart_1808039.html

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2009-03-09 15:16 |只看該作者
能否給個(gè)簡(jiǎn)單的中文例子?謝謝!
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP