sven: Seitenumbruch bei region-body mit column-count

Hallo!

Für Etikettendruck habe ich eine Tabelle erstellt die in einer 3 zeiligen Seite (<fo:region-body margin-left="14pt" margin-top="0pt" margin-bottom="23pt" margin-right="0pt" column-count="3" column-gap="0pt">) immer wieder aufgerufen wird.

Funktioniert wunderbar.

Jetzt will ich unter bestimmten Bedingungen einen Seitenumbruch haben.

<xsl:if test="grw!=''">
<fo:block break-after="page"/>
</xsl:if>
<xsl:call-template name="Etikett"/>

Folgendes Problem tritt nun auf. Der Umbruch erfolgt nicht pro Seite sondern pro column in der Seite. Ist also der Datensatz bei dem der Umbruch erfolgen soll in der ersten Spalte wird zwar umgebrochen, er fängt aber nicht auf der nächsten Seite wieder an sondern auf der gleichen in der nächsten Spalte.

Ich wäre um jeden Lösungsvorschlag sehr dankbar.

Gruß, Sven

  1. Hallo,

    Jetzt will ich unter bestimmten Bedingungen einen Seitenumbruch haben.

    <xsl:if test="grw!=''">
    <fo:block break-after="page"/>
    </xsl:if>
    <xsl:call-template name="Etikett"/>

    Folgendes Problem tritt nun auf. Der Umbruch erfolgt nicht pro Seite sondern pro column in der Seite. Ist also der Datensatz bei dem der Umbruch erfolgen soll in der ersten Spalte wird zwar umgebrochen, er fängt aber nicht auf der nächsten Seite wieder an sondern auf der gleichen in der nächsten Spalte.

    Ich kann nicht genau nachvollziehen was du meinst. Was du aber versuchen kannst ist ein: break-after="column", bzw. die Abfrage im Template "Etikette" einbauen.

    Grüße
    Thomas

    1. Ich kann nicht genau nachvollziehen was du meinst. Was du aber versuchen kannst ist ein: break-after="column", bzw. die Abfrage im Template "Etikette" einbauen.

      Also ich probiere es nochmal etwas anders zu erklären, verzeiht bitte Formulierungsfehler ich bin absoluter Neuling auf diesem Gebiet:

      Ich habe ja mit column-count="3" im fo:regio-body die Seite in 3 Spalten geteilt.

      jetzt läuft ein
      <xsl:for-each select="Gruppenwechsel">

      in dem Abgefragt wird

      <xsl:if test="grwnummer!=''">
      <fo:block break-after="page"/>
      </xsl:if>

      und dann gerufen wird

      <xsl:call-template name="Etikett"/>

      Hier ist dann wieder ein <xsl:for-each select="Personensatz">
      der mir in eine Tabelle die Daten für ein Etikett zurückliefert.

      So werden die Sätze nacheinander dreispaltig in das Dokument geschaufelt und wenn in grwnummer was drin steht soll ein Seitenumbruch gemacht werden.

      Problem ist das der break-after="page" nur für eine column funktioniert nicht für die ganze Seite.
      break-after="column" hab ich auch schon probiert, funktioniert aber genauso wenig...ist glaub ich auch eher dafür gedacht den Umbruch zur nächsten column zu machen...also genau das was jetzt passiert.

      Habe es mit <fo:block span="all"> probiert nur...ich müsste es nachdem ich dem break gemacht habe wieder auf <fo:block span="none"> zurücksetzen da sonst alles einspaltig rauskommt. Und da macht XSL nicht mit.

      Hoffe das hilft zum helfen :-)

      1. Die Ursache war das ich <fo:block break-after="page"/> innerhalb einer Tabelle untergebracht hatte.
        Nachdem ich es außerhalb gemacht habe wurde der Umbruch auch für eine ganze Seite und nicht nur für die column auf der Seite gemacht.

        Danke an alle die mitgegrübelt haben.

        Gruß, Sven

  2. Hallo,

    ich verstehe das auch nicht ganz, wird denn bei irgendeinem Umbruch Seitenumbruch gemacht oder gar nicht? Habe grade ausprobiert, hat alles wunderbar geklappt mit der nächsten Seite.. keine Fehlermeldung oder so?

    Hallo!

    Für Etikettendruck ..