2014-01-27 42 views
0

我有一個需要轉換爲PDF格式的XML文檔,我對XSLt有很好的瞭解,但是在這裏,當我試圖輸入PDF格式的輸出格式時,它並沒有採用它。當我在網上搜索時,我知道XSLT的輸出格式可以是text/xml/html。但我需要一個PDF輸出。將文檔轉換爲PDF格式

同時,我已經下面的問題,

1) If i attach a stylesheet to XSLT, will the styles be saved in PDF output. 
2) Can this PDF be importable into InDesign and editable(if any changes are required). 

感謝

+0

看看XSL-FO –

+0

感謝您的回覆,如果您不介意,可以給我一些示例,因爲我無法將XSLT與XSL進行關聯:FO – user2423959

+0

嘗試此網站(http:// xmlgraphics.apache.org/fop/resources.html) –

回答

1

PDF不是XSLT的標準輸出格式之一。的xsl:outputmethod的屬性允許以下值:

xml | html | xhtml | text | [lexical QName] 

的最後一個值是指可以使用任何合格的名稱 - 只要產品或用戶分機被提供來解決它的意義。但是,將自己的擴展寫入XSLT處理器並不完全符合您的想法,我敢說。

但是生成PDF不是XSLT的目的,無論如何,因爲它主要關心的是轉化 XML,而格式化留給相關規範,格式化對象,或XSL-FO。查找官方建議here

XSL-FO被寫入XML爲好,但這些元件通常與XSL-FO命名空間前綴:

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> 

注意,XSL-FO碼不能由XSLT處理器來解釋(即,您可以轉換XSL-FO文檔,但不能將其渲染爲PDF)。對於這項任務,必須使用FO處理器。例如,Apache FOP是一個衆所周知的免費軟件。


現在,如何進行?將生成PDF的企業分爲兩部分:第一步將您的XML輸入轉換爲XSL-FO(使用XSLT樣式表),然後在第二步中使用FO處理器呈現結果。

2

一般的方法是使用XSLT將您的XML文檔轉換爲XSL-FO。 XSL-FO是一個基本描述頁面佈局的XML詞彙表;它定義了頁面的頁面和區域的元素。一旦生成了XSL-FO,您就可以通過XSL-FO處理器將其轉換爲PDF,而無需用戶參與。

通過查看一個或兩個示例,不要期望學習XSL-FO。你需要做一些閱讀。