如今的XML,在文檔生成方面可謂大紅大紫。使用XML + XSLT可以動態生成HTML文檔和表單。而XML + XSL +?FO更可以動態生成PDF/RTF文檔。
所謂動態生成,就是在運行,才將數據放到具有指定DTD/schema的XML文檔中,使用預定義的XSL文檔生成可供瀏覽或打印的文檔。
一般來說,生成HTML和PDF的XSLT要分別定義。對于HTML和PDF表現差別較大的文檔,有必要使用這種方法。
但是,對于一些格式要求較高的表單和報表,在HTML和PDF下的表現是基本一致的。這個時候就有必要用同一個樣式表輸出HTML和PDF。要知道,手工定義一份XSLT可是很費工夫的。
FO似乎能達到這個目標,它具備足夠精細的樣式定義,借助FOP等工具,可直接輸出PDF等格式。可惜的是,目前的主流瀏覽器,如IE和firefox,并不能直接顯示FO文檔。必須將其轉換成HTML或XHTML。然后,我沒有發現任何的開源工具可以做到這一點。
?
Altove StyleVision,恰到好處的實現上述目標。
顧名思義,StyleVision就是用來設計樣式表的,它提供一個非常友好的GUI設計界面。它使用一個私有的XML格式(SPS)來保存樣式表,這個樣式表可轉換成生成HTML的XSLT和生成FO的XSLT。
這樣,做為開發方,購買一份Altova StyleVision,用來設計樣式表,然后將其生成的XSLT發布給用戶,就可以實現同源輸出報表了。而最終用戶可以不購買Altova StyleVision
附圖:兩種動態文檔生成方案(在圖中體現為兩條可選的路線):
?