将文档转换为PDF格式

时间:2014-01-27 07:42:00

标签: xml xslt pdf

我有一个需要转换为PDF的XML文档,我对XSLt非常了解,但是当我尝试将输出格式输入到PDF时,它没有采用它。当我在网上搜索时,我知道XSLT的输出格式可以是text / xml / html。但我需要一个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).

由于

2 个答案:

答案 0 :(得分:2)

一般方法是使用XSLT将XML文档转换为XSL-FO。 XSL-FO是一个XML词汇表,实质上描述了页面的布局;它定义页面的页面和区域的元素。一旦您生成了XSL-FO,就可以通过XSL-FO处理器将其转换为PDF,而无需用户进一步参与。

不要期望通过查看一两个示例来学习XSL-FO。你需要做一些阅读。

答案 1 :(得分:1)

PDF不是XSLT的标准输出格式之一。 method的{​​{1}}属性允许以下值:

xsl:output

最后一个值表示可以使用任何限定名称 - 只要提供产品或用户扩展名即可解析其含义。但是将自己的扩展写入XSLT处理器并不是你想到的,我敢说。

但是PDF生成不是XSLT的目的,因为它主要关注转换 XML,而格式化则留给相关规范,格式化对象,或者XSL-FO。找到官方推荐here

XSL-FO也是用XML编写的,但这些元素通常以XSL-FO命名空间为前缀:

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

请注意,XSL-FO代码无法由XSLT处理器解释(也就是说,您可以转换XSL-FO文档但不能将其呈现为PDF)。对于此任务,必须使用FO处理器。例如,Apache FOP是一个众所周知且免费的。{/ p>


现在,如何进行?将生成PDF的企业拆分为两部分:在第一步(使用XSLT样式表)将XML输入转换为XSL-FO,然后在第二步中使用FO处理器渲染结果。