[XSLT & FOP] Bijeenhouden elementen

Pagina: 1
Acties:

  • Ansur
  • Registratie: Januari 2004
  • Laatst online: 18-04 07:57
Situatieschets: via een webapplicatie worden er allerhande gegevens ingegeven. Daarna worden er, afhankelijk van deze gegevens, 1 of meer PDF files gegenereerd. Een typische PDF-file heeft een header, body, en footer. Vrij basic dus. De body bestaat uit 1 of meer paragrafen.


Meestal kan de content op 1 pagina. Echter, het kan soms gebeuren dat het net niet op die ene pagina past. Als dit gebeurd, zijn er eigenlijk 2 zaken die gewenst zijn:

* het kan gebeuren dat de footer uitgespreid wordt over de 2 pagina's. Je hebt dan iets in de aard van "Vriendelijke Groeten," op het einde van p1, en "Bart" aan het begin van p2. Dit moet dus al samen.

* Dan. Het is nogal stom om enkel die footer op p2 te staan hebben, het beste zou dan zijn dat er 1 of 2 van die vorige paragrafen mee op de volgende pagina komen te staan.


Ik heb al wat door de specificaties gegaan, die te vinden zijn op w3c. Zaken zoals "keep-together" en "break-before", echter, ik heb nog niks nuttigs gevonden. Google vind precies ook niet al te veel (of ik moet slecht zoeken).

Een paragraph is basically iets in de aard van:
XSLT:
1
2
3
4
5
<xsl:element name="fo:block">
    <xsl:attribute name="space-before"><xsl:value-of select="$space-before"/></xsl:attribute>
    <xsl:attribute name="space-after"><xsl:value-of select="$space-after"/></xsl:attribute>
Hier staat dus wat tekst.
</xsl:element>

  • CubicQ
  • Registratie: September 1999
  • Laatst online: 23:34
je hebt toch echt keep-together etc. nodig, dus dat is op zich goed. Het enige punt waar je nog de mist in kan gaan is dat FOP 'niet alles van XSL-FO' ondersteunt.

En je raadt het al: FOP ondersteunt keep-together niet altijd. Je kan op de FOP site zien wat wel en niet ondersteund wordt, uit m'n hoofd gezegd ondersteunt FOP deze zaken alleen bij tabellen. Dus: tabellen gebruiken (van 1 cell breed, en per paragraaf een aparte cell).

[ Voor 6% gewijzigd door CubicQ op 24-11-2005 15:45 . Reden: gezegd is met een d en niet met een t, en ondersteunt is met een t en niet met een d (tjsa, ik heb vakantie...) ]


  • Ansur
  • Registratie: Januari 2004
  • Laatst online: 18-04 07:57
Prachtig! Ik had inderdaad nog niet gekeken naar de FOP-specs 8)7
Het is dus inderdaad zo dat enkel table-row "keep-together" ondersteunt.