2014-01-27 149 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。你需要做一些阅读。