Mientras que el ancho sea fijo y no espere que las cosas "floten" dinámicamente en anchura como css, lo he hecho (por utilizando una técnica vertical de 'Puertas correderas', si recuerda css de la escuela anterior):
Obtenga una imagen de fondo de esquina redondeada y espere mientras esté en la página (tenga en cuenta si espera que las cosas vayan hacia varias páginas, entonces esto no funcionará tan bien jeje). Lo uso en encabezados/pies de página y cosas que comienzan una página nueva (en la región del cuerpo) que sé que no irá más de 1 página.
Entonces decido si necesito una altura fija ... si es así sólo puede utilizar una imagen de fondo sin fancyness ...
si la altura variará, a continuación, sólo tiene que utilizar la parte superior de la imagen para una parte y la parte inferior de la imagen para otra parte. algo como esto:
<fo:block-container>
<fo:block-container background-image="url(images/rounded_corner_image.png)"
background-repeat="no-repeat"
background-position-horizontal="15px"
background-position-vertical="top"
background-color="white"
>
<!--
So it used the top of the image for as long as the block-container exists heightwise.
I may have had some whitespace in my image and need to move image into place so think I used background-position-horizontal since i had 15px of whitespace i wanted to cut off
Also you may set a height above if definatley know you don't need it to 'auto-expand', just make sure you have content that can't overflow if setting height (like a table with Name: Address: fields)
-->
<fo:block margin="70px 70px 0px 70px">
Need to add some margins before starting content since dont want to text to touch the top and sides of of the rounded corner/borders plus add whitespace for content.
</fo:block>
</fo:block-container>
<fo:block-container background-image="url(images/rounded_corner_image.png)"
background-repeat="no-repeat"
background-position-horizontal="15px"
background-position-vertical="bottom"
padding="0px 0px 20px 0px"
background-color="white"
>
<fo:block margin="0px 70px 70px 70px">
Need to add some margins before starting content since dont want to text to touch bottom and sides of of the rounded corner/borders.
</fo:block>
</fo:block-container>
</fo:block-container>
Hay varias maneras de hacerlo, creo. como si tuviera contenido en la parte inferior así que solo uso el fondo sabiendo que definitivamente voy a tener al menos 70px de contenido para mostrar el degradado inferior de mis esquinas redondeadas ... puedes decidir poner todo tu contenido en el primer bloque-contenedor y dando al segundo bloque-contenedor una altura fija de 70px para mostrar solo la imagen de fondo inferior (creo que esto es posible aunque no haya contenido en ese contenedor inferior [olvide las reglas xsl-fo]). Usar el tronco FOP y funciona bien.
EDITAR: debería tener en cuenta que uso el último FOP 1.0 (también intentado con la versión anterior), y funciona bien. También utilicé un gráfico tan alto como el contenido, ya que tengo bordes ... Si solo requiere gráficos superiores e inferiores (y el color de fondo para llenar el cuerpo, entonces no es necesario que tenga el alto 'as-tall-as' -posible 'imagen).