主要局限
XSL-FO 1.1版所加入的最重要的元素(流圖、表標記、索引等等)都無法使用。
此外,仍然不支持XSL-FO 1.0版的部分特性,包括自動表格布局、浮動布局等。
輸入格式
Apache FOP支持XSL-FO中嵌入的大量的圖像格式(通過<fo:external-graphic>元素)。包括:
•SVG
•PNG
•BMP點陣圖
•PostScript(以EPS為擴展名)
•JPEG
•一些TIFF格式
Apache FOP 沒有實現<fo:float>元素。
輸出格式
Apache FOP支持如下的輸出格式:
•PDF(最佳輸出格式),也包括PDF/X和PDF/A(有一些限制)
•ASCII文本傳真
•PostScript
•直接列印輸出(PCL)
•AFP(先進功能演示)
•RTF
•Java2D/AWT顯示、列印,頁面重定向到PNG和TIFF
如下格式實現中:
•MIF
•SVG
XSL-FO
XSL-FO是 XSL Formatting Objects的縮寫,它是一種用於文檔格式的XML置標語言。XSL-FO是XSL的一部分,而XSL是一組定義XML數據轉換與格式的W3C技術。XSL的其他部分有XSLT與XPath。截止到2006年12月12日,XSL-FO的最新版本是v1.1。
XSL-FO總的設計思想用戶寫到文檔中的數據是XML語言的文檔,而不是FO,所用語言可以是XHTML、DocBook以及TEI或者其他任何的XML語言。然後,用戶自己寫一個或者找一個XSLT變換,將XML轉換成XSL-FO。
一旦生成了XSL-FO文檔,就將它送到FO處理器這樣的應用程式中。FO處理器將XSL-FO文檔轉換成可以閱讀或者可以列印的格式。最常見的XSL-FO輸出格式是PDF或者PostScript,有一些FO處理器只能輸出成RTF這樣的格式或者只能輸出到圖形用戶界面的頁面序列及內容。
人們最初認為XSLT語言本身僅僅是為這個目的所用的,但是現在由於更加通用的XML轉換的出現已經超出了這個範圍。由於這個轉換是一個必然的過程,因此人們也常常將XML轉換為XSL-FO的XSLT當作XSL-FO文檔本身。甚至是XSL-FO的教程也在FO處理用法也用XSLT命令表示。
XSLT轉換過程功能非常強大,它可以自動生成內容的列表、參考連結、索引以及其他的結果。
XSL-FO文檔與PDF或者PostScript文檔不同,它沒有充分地描述文本在不同頁面上的布局,相反,它僅僅描述了頁面外觀以及不同內容放置的位置。根據這些,FO處理器依據FO文檔中描述的邊界確定文本的位置。XSL-FO規範甚至允許不同的FO處理器根據所生成的頁面有不同的回響。
例如,有些FO處理器為了節約空間在換行的時候會加入連字元,有些卻不會這樣做。不同的處理器甚至會使用不同的連字元算法,從一些簡單的算法到需要考慮前後行是否也許要連字元這樣複雜的算法。這樣就會在不同的頁面改變頁面布局,尤其是帶有框線的時候更是這樣。另外還有一些場合,XSL-FO規範明確允許FO處理器根據布局作出一定的選擇。