XML-Technologien
Posts 1-4 of 4
-
Thomas Muders Premium MemberThe company name is only visible to registered members.XSL-FO : 2-Spaltiges Layout 2 Flow-Bereiche?
Hallo liebe Gruppenmitglieder,
ich suche nach einer Lösung für folgendes Vorhaben:
2-Spaltiges Layout:
- Rechts der Text
- Links die Bilder
Die Bilder werden an bestimmten Textstellen eingefügt. Der Text läuft also am rechten Rand des Bildes weiter. Wenn ich dann ein weiteres Bild hinzufüge, soll dieses auch auf der rechten Seite erscheinen, aber das vorhergehende Bild nicht schneiden. Wäre super, wenn der Text dann mit dem Bild nach unten versetzt wird.
Das Problem: Wie genau mache ich das? Woher weiß der Prozessor, wo die Bilder sind?
Ist ein Tabellenlayout dafür möglich? Ist das mit 3 Spalten möglich?
Viele Grüße,
Thomas
- 10 Aug 2009, 10:54 pm
-
Björn Dünckel Premium Member Group moderatorThe company name is only visible to registered members.Re: XSL-FO : 2-Spaltiges Layout 2 Flow-Bereiche?
Hallo Thomas!
ich suche nach einer Lösung für folgendes Vorhaben:
2-Spaltiges Layout:
- Rechts der Text
- Links die Bilder
Die Bilder werden an bestimmten Textstellen eingefügt. Der Text läuft also am rechten Rand des Bildes weiter. Wenn ich dann ein weiteres Bild hinzufüge, soll dieses auch auf der rechten Seite erscheinen,
Ich dachte "Rechts der Text" und "Links die Bilder" ?
aber das vorhergehende Bild nicht schneiden. Wäre super, wenn der Text dann mit dem Bild nach unten versetzt wird. Das Problem: Wie genau mache ich das?
Wenn ich dich richtig verstehe - mit <fo:float>.
Woher weiß der Prozessor, wo die Bilder sind?
Ähm, naja - der Prozessor arbeitet die FO-Elemente eben in der Dokumentreihenfolge ab und rendert sie ensprechend der Attributierung nach dem FO-Standard (zumindest beim Einsatz eines guten Renderers).
Woher weiß denn dein Browser bei der Darstellung von HTML-Dateien wo die Bilder sind ... ?
Ist ein Tabellenlayout dafür möglich?
Grundsätzlich schon. Es ist nur nicht so elegant, da es sich ja nicht wirklich um tabellarische Informationen handelt.
>Ist das mit 3 Spalten möglich?
Ja, ich denke schon. was soll denn in welcher Spalte stehen?
Hier eine exemplarische Umsetzung, soweit ich deine Anforderungen richtig verstanden habe:
<?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="
http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="A4" page-width="210mm" page-height="297mm">
<fo:region-body region-name="xsl-region-body" margin="2cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="A4"> -->
<fo:flow flow-name="xsl-region-body">
<fo:block>
<fo:float float="left" width="300px" margin-right="50px">
<fo:block>
<fo:external-graphic
src="
http://www.bajoodoo.com/img/xshared/bajoodoo/xml-xsl.jpg&quo...
</fo:block>
</fo:float>
<fo:block margin-left="350px">Lorem ipsum [...] </fo:block>
<fo:block clear="both" />
</fo:block>
<fo:block>
<fo:float float="left" width="300px" margin-right="50px">
<fo:block>
<fo:external-graphic
src="
http://www.bajoodoo.com/img/xshared/bajoodoo/xml-xsl.jpg&quo...
</fo:block>
</fo:float>
<fo:block margin-left="350px">Lorem ipsum [...]</fo:block>
<fo:block clear="both" />
</fo:block>
<fo:block>
<fo:float float="left" width="300px" margin-right="50px">
<fo:block>
<fo:external-graphic
src="
http://www.bajoodoo.com/img/xshared/bajoodoo/xml-xsl.jpg&quo...
</fo:block>
</fo:float>
<fo:block margin-left="350px">Lorem ipsum [...]</fo:block>
<fo:block clear="both" />
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
Hier die FO-Datei
http://www.schematron.de/Download/sample.fo
Und hier ein Screenshot vom Ergebnis (gerendert mit Antenna House 4.2):
http://www.schematron.de/Download/sample.jpg
Viele Grüße,
Björn.
- 25 Aug 2009, 12:21 am
-
Thomas Muders Premium MemberThe company name is only visible to registered members.Re^2: XSL-FO : 2-Spaltiges Layout 2 Flow-Bereiche?
Mit Antenna House mag das funktionieren.
Wir nutzen hier FOP und das Unterstützt kein float.
Gibt es andere freie Renderer, die das Unterstützen?
Im Moment haben wir es über Tabellen gelöst, was aber unelegant ist.
Ja, hatte mich nicht richtig ausgedrückt. Bilder immer links.
Vielen Dank für das Beispiel!
Nochmal die Ausgabe das Renderers:
25.08.2009 09:22:53 org.apache.fop.fo.flow.Float <init>
WARNUNG: fo:float is not yet implemented.
25.08.2009 09:22:53 org.apache.fop.layoutmgr.LayoutManagerMapping makeLayoutManagers
SCHWERWIEGEND: No LayoutManager maker for class class org.apache.fop.fo.flow.Float
25.08.2009 09:22:53 org.apache.fop.layoutmgr.LayoutManagerMapping makeLayoutManagers
SCHWERWIEGEND: No LayoutManager maker for class class org.apache.fop.fo.flow.Float
25.08.2009 09:22:53 org.apache.fop.layoutmgr.LayoutManagerMapping makeLayoutManagers
SCHWERWIEGEND: No LayoutManager maker for class class org.apache.fop.fo.flow.Float
Viele Grüße,
Thomas
- 25 Aug 2009, 09:26 am
-
Björn Dünckel Premium Member Group moderatorThe company name is only visible to registered members.Re^3: XSL-FO : 2-Spaltiges Layout 2 Flow-Bereiche?
Hallo Thomas!
Mit Antenna House mag das funktionieren.
mhm.
Wir nutzen hier FOP und das Unterstützt kein float.
Jaja, der FOP...
Gibt es andere freie Renderer, die das Unterstützen?
So weit ich weiß gibt es keinen besser ausgebauten freien Renderer.
Für eine Lösung per flaot bleibt dann wohl nur der Griff in die Portokasse und der Lizenzkauf eines professionellen Renderers.
Die Antenna House Trial erzeugt soweit ich weiß im PDF ein Wasserzeichen, was vermutlich nicht erwünscht sein dürfte.
Im Moment haben wir es über Tabellen gelöst, was aber unelegant ist.
Stimmt, elegant ist es nicht.
Wenn es aber funktioniert - "who cares"?
Entscheidend ist bei dem Publikationsformat PDF schließlich ein korrektes Ergebnis in der Darstellung.
Anders sieht es höchstens bei hohen Ansprüchen an die Barrierefreiheit aus...
Ja, hatte mich nicht richtig ausgedrückt. Bilder immer links.
Gut, dann sollte mein Beispiel eigentlich stimmen
Vielen Dank für das Beispiel!
keine Ursache.
Nochmal die Ausgabe das Renderers:
25.08.2009 09:22:53 org.apache.fop.fo.flow.Float <init>
WARNUNG: fo:float is not yet implemented.
25.08.2009 09:22:53 org.apache.fop.layoutmgr.LayoutManagerMapping makeLayoutManagers
SCHWERWIEGEND: No LayoutManager maker for class class org.apache.fop.fo.flow.Float
25.08.2009 09:22:53 org.apache.fop.layoutmgr.LayoutManagerMapping makeLayoutManagers
SCHWERWIEGEND: No LayoutManager maker for class class org.apache.fop.fo.flow.Float
25.08.2009 09:22:53 org.apache.fop.layoutmgr.LayoutManagerMapping makeLayoutManagers
SCHWERWIEGEND: No LayoutManager maker for class class org.apache.fop.fo.flow.Float
Ja, da hat der Renderer recht:
http://xmlgraphics.apache.org/fop/compliance.html#fo-object-...
Viele Grüße,
Björn.
- 25 Aug 2009, 11:22 am
