Announcement

Collapse
No announcement yet.

FO-Tree leaf mit fo-tags in Formatierung übernehmen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • FO-Tree leaf mit fo-tags in Formatierung übernehmen

    Hallo zusammen,
    ich habe eine FO Frage, die glaube ich ein wenig in Richtung Verständnis und weniger in Richtung Logik geht...

    Ich erzeuge ein FO Dokument mittels einer XSLT transformation aus einer XML Datei. Soweit so gut. Funktioniet alles

    Jetzt gibt es hier einige Inhalte die HTML Tags enthalten (<ht>, ... , </br>, usw...).
    Diese werden ganz normal mit dem im erzeugten PDF ausgegeben.

    Mein Plan war jetzt, diese einfach über ein "replace" Template durch die entsprechenden FO-Tags zu ersetzen (z.B. <fo:inline>). Das fuktioniert zwar, nur werden mir auch die FO-Tags einfach so im PDF angezeigt, ohne die Formatierung zu beeinflussen. Finde ich im nachhinein auch logisch, da es sich ja um ein Blatt im FO-Baum handelt.
    Gibt es hier eine Möglichkeit den so entstandenen FO-Code mit in die PDF Erzeugung zu integrieren?

    Besten Dank und viele Grüße

    David

  • #2
    Verstehe ich nicht richtig. Der via XSLT erzeugte FO-Code wird prozessiert. Wenn das FO richtig generiert wurde (also wirklich fo:inline ausgegeben wird), können keine "Tags" im PDF erscheinen. Prüfe also die Transformation bzw. schaue mal den FO-Code direkt an.

    Comment


    • #3
      Wie genau sind denn im Inhalt "HTML Tags enthalten", als Elemente, also etwa
      Code:
      <foo>
        <div>
          <h2>Beispiel</h2>
          <p>Dies ist ein Beispiel.</p>
        </div>
      </foo>
      oder etwa nur als Text
      Code:
      <foo><![CDATA[
        <div>
          <h2>Beispiel</h2>
          <p>Dies ist ein Beispiel.</p>
        </div>
      ]]></foo>
      Und wie sieht das "replace" Template aus? Im ersten Fall sollte
      Code:
      <xsl:template match="foo">
        <fo:block>
          <xsl:apply-templates/>
        </fo:block>
      </xsl:template>
      
      <xsl:template match="div | p | h2">
        <fo:block>
          <xsl:apply-templates/>
        </fo:block>
      </xsl:template>
      reichen, so der HTML-Markup aber maskiert ist und dein replace dann nur Text ersetzt, wundert es mich nicht, dass im Resultat dann die FO-Tags als Text erscheinen.
      Da wird man den maskierten HTML-Inhalt erst parsen müssen, was aber nur mit Erweiterungen wie etwa http://www.saxonica.com/documentatio...parse-html.xml.
      Oder du musst versuchen, per disable-ouput-escaping dafür zu sorgen, dass die Tags im Resultat der Transformation, so dieses serialisiert wird, als Elemente erscheinen.

      Comment

      Working...
      X