2017-07-23 5 views
0

Ich entwickle gerade ein XSLFO-Stylesheet, das den Inhalt mit dem RenderX XEP-Prozessor auf eine 2-Spalten-Anzeige setzt. Allerdings möchte ich die Tabellen immer noch als 1-spaltige Anzeige verlassen.XMetaL XSL-FO Spaltenlayout

In der Tat, da ich XEP-Prozessor verwende, wird es mir nicht erlauben, ein @ span = "alle" Attribut zeigt den Fehler "fo: block ist kein direktes Kind eines fo: Flow".

Der Artikel bezieht sich auf Docbook xslfo, während ich ein benutzerdefiniertes xslfo verwende, das mit XMetal geliefert wird.

Antwort

0

Ohne den resultierenden XSL FO zu sehen, ist es schwer zu verstehen. Aber ja, span = "all" muss auf einer Struktur sein, die ein direktes Kind des Flusses ist. Wenn sich Ihre Tabelle in anderen Dingen wie einem Block-Container oder einem Block befindet, kann dies passieren und Sie werden diesen Fehler erhalten.

Sie können die Tabelle über die zwei Spalten nur dann überspannen, wenn der Block mit span = "all" ein direkter Nachfolger von fo: flow ist.

<fo:flow> 
    <fo:block span="all">I work and will span two columns</fo:block> 
    <fo:block-container> 
     <fo:block span="all">I will NOT work as I am not a child of fo:flow</fo:block> 
    <fo:block-container> 
</fo:flow> 
+0

Hallo Kevin danke, aber ich konnte nicht verstehen, das der Code im Stylesheet geschrieben ist diese Note i auf der Seite überspannen wollen \t \t \t \t könnte dieser Code nicht in XMetaL arbeiten könnte Ihnen helfen Sie bitte, wie Sie tue das –

+0

Erstelle den gesamten FO und untersuche ihn. Du erschaffst diese Struktur in etwas anderem und es kann nicht für eine Spanne sein wie alles. –

+0

Mit anderen Worten, Ihre Quelle hat wahrscheinlich eine Notiz in etwas anderem, deren Vorlage eine andere Struktur erstellt und der Notizblock ist kein Kind von root –

Verwandte Themen