如何在使用XSL-FO生成另一个PDF文件的同时合并PDF文件?

时间:2019-02-19 06:36:40

标签: java xslt pdf-generation xsl-fo apache-fop

我正在使用XSL-FO生成PDF文件,并且有一种情况需要将PDF文件与使用XSL-FO生成的PDF文件合并。 是否可以使用XSL-FO实现此目标?

这就是我现在在XSL文件中尝试过的内容

<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" SiteMapProvider="ToolsSiteMap" />

<asp:TableCell ID="TableCell3" HorizontalAlign="Left" runat="server" Width="200px">
    <asp:Menu ID="NavigationMenu" DataSourceID="SiteMapDataSource1"
        StaticDisplayLevels="1"
        StaticSubMenuIndent="100"
        Orientation="Horizontal"
        Font-Size="Medium"
        Font-Underline="true"
        Target="_blank"                            
        runat="server">
        <StaticMenuItemStyle BackColor="#1777B0" ForeColor="White" />
        <StaticHoverStyle BackColor="#00508A" />
        <DynamicMenuItemStyle BackColor="#1777B0" ForeColor="White" />
        <DynamicHoverStyle ForeColor="White" />
    </asp:Menu>
</asp:TableCell>

1 个答案:

答案 0 :(得分:0)

首先,扩展元素fox:external-documentfo: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-graphicfox:external-document的源。