如何将图像设置为PDF页面背景

时间:2014-10-03 12:23:05

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

我在表格列中使用图像作为背景时遇到问题。我需要将图像作为pdf中每页的背景。

图像正在显示但似乎放大了。它的尺寸是宽度:2487px,高度:3516px(宽度:21.06cm,高度:29.77cm)。

这是我的代码:

<xsl:template name="template-body">     
        <fo:block backgorund-color="yellow">                                
            <fo:table>
                <fo:table-column background-image="image.jpg"/>
                <fo:table-body>
                    <fo:table-row height="29.7cm">                          
                        <fo:table-cell>
                            <fo:block color="white">
                                SOME TEXT INSIDE THE IMAGE
                            </fo:block>
                        </fo:table-cell> 
                    </fo:table-row>
                </fo:table-body>                
            </fo:table>
        </fo:block>

    </xsl:template>

此代码生成:

enter image description here

但我需要这个:

enter image description here

我还尝试将图像作为<fo:region-body>的背景,但我遇到了同样的问题。我想我需要一些方法来指定图像的宽度和高度。

有任何帮助吗?提前谢谢。

1 个答案:

答案 0 :(得分:2)

由于您使用FOP,我认为没有规定缩放背景图像以适应。这将是XSL FO规范的扩展。

RenderX XEP支持此功能(http://www.renderx.com/reference.html#Background_Image)。

目前还不清楚你是否真的想要桌面背后的图像(并且你有其他内容),或者你实际上想要整个页面背后的图像。

您可以将图像放在绝对定位的块容器中,并使用内容宽度和内容高度来缩放,但这不会仅对表重复。这适用于页面。如果它只是表格,您可能需要调整实际图像的大小才能正确拟合。