Dopóki jest to stała szerokość i nie oczekuj, że rzeczy będą "płynąć" dynamicznie w kierunku szerokości jak css, zrobiłem to (przez używając pionowej techniki "Drzwi przesuwane", jeśli pamiętasz oldschool'owe css):
Zdobądź zaokrąglony narożnik i trzymaj go tak długo, jak oczekujesz na stronie (uwaga, jeśli spodziewasz się, że coś pójdzie na wiele stron, wtedy to nie zadziała tak dobrze hehe). Używam go w nagłówkach/stopkach, a rzeczy, które rozpoczynają nową stronę (w obszarze ciała), które znam, nie przekraczają 1 strony.
Potem zdecyduje, czy muszę stałą wysokość ... jeśli tak można po prostu użyć obrazu tła bez fancyness ...
jeśli wysokość będzie się zmieniać, a potem po prostu używać górnej części obrazu dla jednej części i dolnej części obrazu dla innej części. coś takiego:
<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>
Są różne sposoby na to, jak sądzę. tak jakbym miał zawartość na dole, więc używam dołu, wiedząc, że na pewno będę miał co najmniej 70 pikseli treści, aby pokazać dolny gradient moich zaokrąglonych narożników ... możesz po prostu zdecydować o umieszczeniu całej zawartości w pierwszym blok-kontener i nadanie drugiemu blokowi kontenera stałej wysokości 70 pikseli, aby pokazać tylko dolny obraz w tle (myślę, że jest to możliwe, nawet jeśli w tym dolnym pojemniku nie ma zawartości [zapomnij zasad xsl-fo]). Korzystanie z bagażnika FOP i ładnie działa.
EDYCJA: należy zauważyć, że używam najnowszego FOP 1.0 (również wypróbowany z wersją prev) i działa dobrze. Użyłem też grafiki tak wysokiej, jak zawartość, ponieważ mam granice ... Jeśli potrzebujesz tylko górnej i dolnej grafiki (i koloru tła do wypełnienia ciała, wtedy nie potrzebujesz pełnego "as-tall-as" "możliwy" obraz).