我正在使用XSL-FO生成PDF文件,我有一个场景,我需要将PDF文件与我使用XSL-FO生成的文件合并。是否可以使用XSL-FO实现这一目标?
这就是我现在在我的XSL文件中尝试过的
<xsl:template match="body">
<xsl:for-each select="paragraph">
<fo:block space-after="1.4em">
<xsl:apply-templates select="d:htmlparse(., '', true())/node()"/>
</fo:block>
</xsl:for-each>
<fox:external-document xmlns:fox="http://xmlgraphics.apache.org/fop/1.0/extensions" content-type="pdf" src='./tobedssssconv.pdf'/>
</xsl:template>
首先,扩展元素fox:external-document
意味着与fo:page-sequence
元素处于同一级别,而不是与其他块级对象在fo:flow
内部(处理文件时可能会出现一些验证错误)。
<fo:page-sequence>
<!-- .... -->
</fo:page-sequence>
<fox:external-document .... />
<fo:page-sequence>
<!-- .... -->
</fo:page-sequence>
这样,您将为第一个fo:page-sequence
生成页面,然后是“包含”PDF的页面,然后是第二个fo:page-sequence
的页面。
否则,如果要在fo:block
元素之间插入内容,可以使用fo:external-graphic
(在fo:block
或其他块级元素内)。
无论哪种方式,您需要PDF Images Plugin引用PDF文件作为fo:external-graphic
或fox:external-document
的来源。