saxon a tabulky do html a do pdf
Tomáš Waller
tomas.waller na seznam.cz
Pondělí Říjen 6 21:38:37 CEST 2008
Jan Tošovský napsal(a):
>> V pdf potřebuji tabulky rozdělit, aby mi nezabraly celou stránku se
>> záhlavím i zápatím.
>>
>
> Jestli tomu rozumim, tabulka nerespektuje vyhrazene misto dokumentu a
> zasahuje do oblasti zahlavi/zapati. To je kazdopadne bug pouziteho XSL-FO
> procesoru, ktery nema valny smysl obchazet zasahy do kodu. Radky tabulky by
> vsak nemely byt svazany stylem keep-together, coz XSL-FO procesor dostava do
> obtizne resitelne situace.
>
>
>> A když už se náhoodu rozdělí na hranici buněk, pak je
>> buňka na další stránce bez horní hranice
>>
>
> Okraj na konci, resp. na zacatku rozdelene tabulky se nastavuje nasledovne:
> <xsl:attribute-set name="table.table.properties">
> <xsl:attribute
> name="border-after-width.conditionality">retain</xsl:attribute>
> <xsl:attribute
> name="border-before-width.conditionality">retain</xsl:attribute>
> </xsl:attribute-set>
>
> Jeste bych zvazil, zda by neslo nahradit tabulku jinym systemem. Rada veci,
> nerikam ze vsechno, nahradit lze.
>
> _______________________________________________
> Docbook mailing list
> Docbook na linux.cz
> http://www.linux.cz/mailman/listinfo/docbook
>
>
Dobrý den!
Ano, rozumíte dobře.
Pro tabulku mám keep-together - always zrušeno takto:
<table>
<title>nazev tabulky</table>
<?dbfo keep-together="auto" ?>
načež následuje další tgroup atd.
Tím se tabulka rozdělí, ale abych jí řekl, kde se má rozdělit, musím
použít mezi řádky hard-pagebreak
</row>
<?hard-pagebreak?>
<row>
Přičemž do docbook-xsl/fo/block.xsl jsem přidal tento kód:
<xsl:template match="processing-instruction('hard-pagebreak')">
<fo:block break-before='page'/>
</xsl:template>
Pro html se hard-pagebreak naštěstí ignoruje. ;-)
Ovšem za tímto hard-pagebreakem je v dokumentu na další straně první
řádek pokračující tabulky bez horního okraje.
A to přestože mám v docbook-xsl/fo/param.xsl uvedený právě ten kód,
který doporučujete:
<xsl:attribute-set name="table.table.properties">
<xsl:attribute
name="border-after-width.conditionality">retain</xsl:attribute>
<xsl:attribute
name="border-before-width.conditionality">retain</xsl:attribute>
<xsl:attribute name="border-collapse">collapse</xsl:attribute>
</xsl:attribute-set>
Tak i přesto je horní řádek bez horního okraje.
Když jsem nepoužil hard-pagebreak mezi řádky, tak se zase buňka někdy
rozdělila uvnitř buňky a já neumím zadat keepbuňkupohromadě. :-(
Jediná možnost je pro mě tedy zatím dosti otravná - bohužel - při volbě
mezi pdf a html rozdělit tabulku v daném místě na table (první část) a
informaltable (druhá část), mezi nimiž je v obou variantách
hard-pagebreak. A dle výstupu (html či pdf) uvedená místa zakomentovat a
prohodit konec druhé části mezi </table> (pro html) či </informaltable>
(pro pdf).
Takže už jsem si skoro zuby vylámal... :-(
Poradíte mi, co s tím?
Tomáš Waller
PS: Používám saxon a fop.
Další informace o konferenci Docbook