FOP を使用して xsl と xml を pdf にレンダリングする際に問題があります。私のテーブルには多くの行がある可能性があり、1 ページに 15 行しか必要ありません。いくつかの解決策を試しましたが、その多くはうまくいきません。何か間違ったことをしているのか、それとも単にこれを処理する方法がわからないだけなのかわかりません。誰かがそれを変更してpdfで複数のページにレンダリングする方法に答えてくれたらありがたいです。初めての投稿なので間違っていたらすみません。
コードは再び更新されますが、それでも for-each を壊すことはできません。複数のページにレンダリングできるようになりましたが、下のすべてを切り取った 1 つのページでテーブルをレンダリングしています。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format" >
<xsl:output method="xml" version="1.0" indent="yes" encoding="UTF-8"/>
<xsl:template match="mydata" >
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="summarypage"
page-height="11in"
page-width="8.5in"
margin-top="10mm"
margin-bottom="10mm"
margin-left="10mm"
margin-right="10mm">
<fo:region-body />
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="summarypage" >
<fo:flow flow-name="xsl-region-body" >
<fo:block text-align="center"
font-size="18pt"
font-weight="bold">
Number: <xsl:value-of select="title/number"/>
</fo:block>
<fo:block>
<fo:block-container position="absolute" top="100pt" left="5pt" height="40pt" width="100%">
<fo:block text-align="left"
font-size="13pt"
font-weight="bold">
Seller:
</fo:block>
</fo:block-container>
<fo:block-container position="absolute" top="100pt" left="400pt" height="40pt" width="100%">
<fo:block font-size="13pt"
font-weight="bold">
Buyer:
</fo:block>
</fo:block-container>
</fo:block>
<fo:block font-size="10pt">
<fo:block-container position="absolute" top="130pt" left="5pt"
height="40pt" width="100%">
<fo:block>
<xsl:value-of select="person/seller/name"/> </fo:block>
</fo:block-container>
<fo:block-container position="absolute" top="130pt" left="400pt"
height="40pt" width="100%">
<fo:block>
<xsl:value-of select="person/buyer/name"/> </fo:block>
</fo:block-container>
</fo:block>
<fo:block font-size="10pt">
<fo:block-container position="absolute" top="145pt" left="5pt"
height="40pt" width="100%">
<fo:block>
<xsl:value-of select="person/seller/address"/> </fo:block>
</fo:block-container>
<fo:block-container position="absolute" top="145pt" left="400pt"
height="40pt" width="100%">
<fo:block>
<xsl:value-of select="person/buyer/address"/> </fo:block>
</fo:block-container>
</fo:block>
<fo:block font-size="10pt">
<fo:block-container position="absolute" top="160pt" left="5pt"
height="40pt" width="100%">
<fo:block>
<xsl:value-of select="person/seller/land"/> </fo:block>
</fo:block-container>
<fo:block-container position="absolute" top="160pt" left="400pt"
height="40pt" width="100%">
<fo:block>
<xsl:value-of select="person/buyer/land"/> </fo:block>
</fo:block-container>
</fo:block>
<fo:block font-size="10pt">
<fo:block-container position="absolute" top="175pt" left="5pt"
height="40pt" width="100%">
<fo:block>
tel.
<xsl:value-of select="person/seller/tel"/> </fo:block>
</fo:block-container>
<fo:block-container position="absolute" top="175pt" left="400pt"
height="40pt" width="100%">
<fo:block>
tel.
<xsl:value-of select="person/buyer/tel"/> </fo:block>
</fo:block-container>
</fo:block>
<fo:block font-size="10pt">
<fo:block-container position="absolute" top="190pt" left="5pt"
height="40pt" width="100%">
<fo:block>
mail:
<xsl:value-of select="person/seller/email"/> </fo:block>
</fo:block-container>
<fo:block-container position="absolute" top="190pt" left="400pt"
height="40pt" width="100%">
<fo:block>
mail:
<xsl:value-of select="person/buyer/email"/> </fo:block>
</fo:block-container>
</fo:block>
<fo:block-container top="100pt" left="0pt" height="40pt" width="100%" text-align="center" table-layout="fixed" margin-top="200pt" margin-bottom="100pt">
<fo:table border-collapse="collapse" font-size="12pt" font-family="Arial">
<fo:table-column column-width="7mm" column-number="1"/>
<fo:table-column column-width="60mm" column-number="2"/>
<fo:table-column column-width="15mm" column-number="3"/>
<fo:table-column column-width="10mm" column-number="4"/>
<fo:table-column column-width="19mm" column-number="5"/>
<fo:table-column column-width="30mm" column-number="6"/>
<fo:table-column column-width="16mm" column-number="7"/>
<fo:table-column column-width="22mm" column-number="8"/>
<fo:table-column column-width="16mm" column-number="9"/>
<fo:table-header font-weight="bold">
<fo:table-row>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block> Nr. </fo:block>
</fo:table-cell>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block>Service</fo:block>
</fo:table-cell>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block>j.m </fo:block>
</fo:table-cell>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block>Amount </fo:block>
</fo:table-cell>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block>netto_price_per_amount</fo:block>
</fo:table-cell>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block>netto_value"</fo:block>
</fo:table-cell>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block>VAT_Percent</fo:block>
</fo:table-cell>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block>VAT_tax</fo:block>
</fo:table-cell>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block>brutto_value</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-header>
<fo:table-body >
<xsl:for-each select="items/item" >
<fo:table-row >
<xsl:if test="position() > 15 and position() mod 15 = 1">
<xsl:attribute name="break-before">page</xsl:attribute>
</xsl:if>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block><xsl:number/>.</fo:block>
</fo:table-cell>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block><xsl:value-of select="service" /></fo:block>
</fo:table-cell>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block><xsl:value-of select="jm" /></fo:block>
</fo:table-cell>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block><xsl:value-of select="amount" /></fo:block>
</fo:table-cell>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block><xsl:value-of select="netto_price_per_amount" /></fo:block>
</fo:table-cell>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block><xsl:value-of select="netto_value" /></fo:block>
</fo:table-cell>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block><xsl:value-of select="VAT_Percent" /></fo:block>
</fo:table-cell>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block><xsl:value-of select="VAT_tax" /></fo:block>
</fo:table-cell>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block ><xsl:value-of select="brutto_value" /></fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:for-each>
</fo:table-body>
</fo:table>
</fo:block-container>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
</xsl:stylesheet>