aragorna: pdf fop und Sonderzeichen

Beitrag lesen

Hallo,

Könntest du mal etwas mehr Code zeigen? So wird das zum Rätselraten. Out of Memory hat nicht unbedingt etwas mit Sonderzeichen zu tun. Meistens liegt es an einem nicht gerade optimalen Stylesheet. Zudem könntest du auch mal versuchen, deinen output zu "kontrollieren". Dir Ergebnisse in möglichen Zwischenschritten anschauen und verfolgen, ob irgendwo ziem,lich viel Daten "erstellt" werden - aber so ganz ohne Code bleibt es halt nur Rätselraten.

Gruß, H.

Hallo Holger,

vielen Dank für deine Antwort. Was meinst du mit "kontrollieren"?

Du meinst sicher den Code vom Stylesheet, oder? Das sieht so aus (ist eine Testdatei):

<?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet version="1.0"    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"    xmlns:fo="http://www.w3.org/1999/XSL/Format">

<xsl:param name="order_language_file_content"/> <xsl:param name="order_language_file_content"/> <xsl:param name="systemdatum"/> <xsl:param name="order_language"/> <xsl:param name="user_country"/> <xsl:param name="isoCode"/>

<xsl:template match='/'>   <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">    fo:layout-master-set     <fo:simple-page-master         page-height="29.7cm" page-width="21cm"         margin-top="2cm"     margin-bottom="2cm"         margin-left="1.5cm"  margin-right="0.5cm"         master-name="first">

<fo:region-body margin-top="1cm" margin-bottom="1.5cm"/>       <fo:region-before extent="1cm"/>       <fo:region-after extent="1.5cm"/>     </fo:simple-page-master>    </fo:layout-master-set>

<xsl:for-each select='/saison/spieltag[@spnr>=15]' >     <xsl:variable name='sp_nr' select='@spnr' />     <fo:page-sequence master-reference="first">       <fo:static-content flow-name="xsl-region-before">         <fo:block line-height="14pt" font-size="14pt"     text-align="start">Spieltag:     <xsl:value-of select='$sp_nr' />  </fo:block>       </fo:static-content>       <fo:static-content flow-name="xsl-region-after">       <fo:block line-height="14pt" font-size="10pt"   text-align="end">Page fo:page-number/</fo:block>     </fo:static-content>

<fo:flow flow-name="xsl-region-body" font-family='arialuni' font-size='12pt'>

<fo:block space-before.optimum="3pt" space-after.optimum="3pt">       Paarungen       </fo:block>

<fo:table border-style="solid" border-width="0pt"                                      border-color="red"          table-layout="fixed">  <fo:table-column column-width="0.75cm"/>  <fo:table-column column-width="4cm"/>  <fo:table-column column-width="0.2cm"/>  <fo:table-column column-width="4cm"/>  <fo:table-column column-width="0.5cm"/>

fo:table-body

<xsl:apply-templates select='/saison/spieltag[@spnr=$sp_nr]/paar' />

</fo:table-body>      </fo:table >

<fo:block space-before.optimum="18pt"                 space-after.optimum="3pt">         Tips       </fo:block>

<!-- fo:table-and-caption

fo:table-caption     fo:block        Tips     </fo:block>  </fo:table-caption>       -->

<fo:table border-style="solid" border-width="0pt"                                            border-color="blue"                              table-layout="fixed">  <fo:table-column column-width="3cm"/>

<fo:table-column column-width="1cm"/>  <fo:table-column column-width="1cm"/>  <fo:table-column column-width="1cm"/>

<fo:table-column column-width="1cm"/>  <fo:table-column column-width="1cm"/>  <fo:table-column column-width="1cm"/>

<fo:table-column column-width="1cm"/>  <fo:table-column column-width="1cm"/>  <fo:table-column column-width="1cm"/>

fo:table-body         fo:table-row

fo:table-cell              fo:block <xsl:value-of select="$order_language_file_content/TranslationOrderPrint/Header/ListOfItem/Item/Row[30]"/> Test polnische Zeichen</fo:block>           </fo:table-cell>

<xsl:for-each select="/saison/spieltag[@spnr=$sp_nr]/paar">              fo:table-cell                <fo:block background-color='yellow' text-align='center' start-indent='2mm' end-indent='2mm'>                   <xsl:value-of select="@pid" />                </fo:block>              </fo:table-cell>           </xsl:for-each>         </fo:table-row>

<!-- xsl:apply-templates select='/saison/spieltag[@spnr=$sp_nr]/paar[@pid=0]/tips' / -->         <xsl:apply-templates select='/saison/spieltag[@spnr=$sp_nr]' mode='tips' />

</fo:table-body>       </fo:table>      <!--      </fo:table-and-caption >      -->

</fo:flow>

</fo:page-sequence> </xsl:for-each>  </fo:root> </xsl:template>

<xsl:template match='spieltag'>    <!-- xsl:value-of select='@spnr' / -->

<xsl:apply-templates select='paar' />

<!-- fo:table-row>      fo:table-cell        fo:block - </fo:block>      </fo:table-cell>    </fo:table-row -->

</xsl:template>

<xsl:template match='paar'>

<fo:table-row space-before.optimum='2mm'>    fo:table-cell      <fo:block background-color='yellow' text-align='center' start-indent='2mm' end-indent='2mm'>         <xsl:value-of select="@pid" />      </fo:block>    </fo:table-cell>

<xsl:variable name="hid" select="heim" />    <xsl:variable name="gid" select="gast" />

fo:table-cell     fo:block        <xsl:value-of select="//vereine/v[@vid=$hid]/vname" />     </fo:block>    </fo:table-cell>

fo:table-cell     fo:block : </fo:block>    </fo:table-cell>

fo:table-cell     fo:block        <xsl:value-of select="//vereine/v[@vid=$gid]/vname" />     </fo:block>    </fo:table-cell>

fo:table-cell     <fo:block font-weight='650'               font-family='arialuni'        start-indent='2mm'>        <xsl:value-of select="result" />     </fo:block>    </fo:table-cell>

</fo:table-row> </xsl:template>

<xsl:template match='spieltag' mode="tips">

<fo:table-row space-before.optimum='5mm'                 space-after.optimum='5mm'>      fo:table-cell            fo:blockr e s u l t</fo:block>      </fo:table-cell>

<xsl:for-each select='paar'>       <xsl:apply-templates select="result" />     </xsl:for-each>   </fo:table-row>

<xsl:for-each select='paar[@pid=0]'>

<xsl:for-each select='tips/tip'>

<fo:table-row space-before.optimum='5mm'>

<xsl:variable name='t_id'  select='@tid' />

fo:table-cell            fo:block              <xsl:value-of select="//tipper/t[@tid=$t_id]/tname" />            </fo:block>          </fo:table-cell>

<xsl:apply-templates select="../../../paar[@pid=0]/tips/tip[@tid=$t_id]" />      <xsl:apply-templates select="../../../paar[@pid=1]/tips/tip[@tid=$t_id]" />      <xsl:apply-templates select="../../../paar[@pid=2]/tips/tip[@tid=$t_id]" />      <xsl:apply-templates select="../../../paar[@pid=3]/tips/tip[@tid=$t_id]" />      <xsl:apply-templates select="../../../paar[@pid=4]/tips/tip[@tid=$t_id]" />      <xsl:apply-templates select="../../../paar[@pid=5]/tips/tip[@tid=$t_id]" />      <xsl:apply-templates select="../../../paar[@pid=6]/tips/tip[@tid=$t_id]" />      <xsl:apply-templates select="../../../paar[@pid=7]/tips/tip[@tid=$t_id]" />      <xsl:apply-templates select="../../../paar[@pid=8]/tips/tip[@tid=$t_id]" />      </fo:table-row>

</xsl:for-each>

</xsl:for-each>

</xsl:template>

<xsl:template match='result'>

fo:table-cell      <fo:block text-align='center'                font-family='arialuni' font-size='13' font-weight='normal'>        <xsl:value-of select="." />      </fo:block>    </fo:table-cell> </xsl:template>

<xsl:template match='result___' mode="pur">

<xsl:value-of select="." />

<!-- xsl:apply-templates select="htore" / -->   <!-- xsl:apply-templates select="gtore" / -->

</xsl:template>

<xsl:template match='tips'>   <xsl:for-each select="tip[@tid='0']">     <xsl:variable name="id" select='@tid' />

fo:table-row

fo:table-cell        fo:block         <xsl:value-of select="//tipper/t[@tid=$id]/tname" />        </fo:block>       </fo:table-cell>

<xsl:apply-templates select="../tip[@tid='0']" />       <xsl:apply-templates select="../tip[@tid='1']" />       <xsl:apply-templates select="../tip[@tid='2']" />       <xsl:apply-templates select="../tip[@tid='3']" />

</fo:table-row>

</xsl:for-each> </xsl:template>

<xsl:template match='tip'>

fo:table-cell     xsl:choose       <xsl:when test="res=1">         <fo:block text-align='center'                   background-color="blue"     color='yellow'     font-family="arialuni"     start-indent="2mm"     end-indent="2mm"     font-weight="650">           <!--             <xsl:value-of select="../../@pid" />,             <xsl:value-of select="@tid" />,           -->           <xsl:value-of select="vor" />        </fo:block>       </xsl:when>       xsl:otherwise         <fo:block text-align="center"                   font-family="arialuni"     font-weight="150">           <!--             <xsl:value-of select="../../@pid" /> ,             <xsl:value-of select="@tid" />,           -->           <xsl:value-of select="vor" />        </fo:block>       </xsl:otherwise>     </xsl:choose>   </fo:table-cell> </xsl:template>

</xsl:stylesheet>

Vielen Dank für weitere Anregungen.

Grüße,

aragorna