Apache FOP - Table 组件从第二页开始错位
Apache FOP - Table component getting misaligned from second page onwards
我使用的是 FOP 2.0 版。我的模板在第一页上有一些文本段落,之后有一个动态 table 和 n 行数。
问题是 table 布局是完美的,直到生成的 PDF 文件第一页上的行。但是当它在第二页继续时,列向右移动了一些边距,最后一列变得不可见。对此有何见解?
下面是 FO 模板的相关部分,包含页面母版和初始 table 代码。
<fo:layout-master-set>
<fo:simple-page-master master-name="first" margin-right="0.5cm"
margin-left="0.5cm" margin-bottom="0.5cm"
margin-top="0.75cm" page-width="21cm"
page-height="29.7cm">
<fo:region-body></fo:region-body>
</fo:simple-page-master>
<fo:simple-page-master master-name="rest" margin-right="2.5cm"
margin-left="2.5cm" margin-bottom="2cm"
margin-top="1cm" page-width="21cm"
page-height="29.7cm">
<fo:region-body></fo:region-body>
</fo:simple-page-master>
<fo:page-sequence-master master-name="psmA">
<fo:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference master-reference="first"
page-position="first"/>
<fo:conditional-page-master-reference master-reference="rest"
page-position="rest"/>
<!-- recommended fallback procedure -->
<fo:conditional-page-master-reference master-reference="rest"/>
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="psmA">
<fo:flow flow-name="xsl-region-body">
<fo:block-container height="0.5cm" width="7.40cm" top="8.80cm"
left="0.3cm" padding=".4mm" position="absolute">
<fo:block text-align="start" space-after.optimum="3pt"
line-height="14pt" font-family="sans-serif" font-size="12pt">Header
Options</fo:block>
</fo:block-container>
<fo:block-container border-style="solid" border-width=".5mm"
height="1.00cm" width="16.40cm" top="8.80cm"
left="3.40cm" padding=".4mm" position="absolute">
<fo:block text-align="start" space-after.optimum="3pt"
line-height="14pt" font-family="sans-serif" font-size="12pt">$header.miscInfo</fo:block>
</fo:block-container>
<fo:block margin-left="0.40cm" margin-top="10.30cm" padding=".4mm" >
<fo:table border-top-style="solid" border-top-width="thick" >
<fo:table-header text-align="center" >
<fo:table-row border-bottom-style="solid" border-bottom-color="#000"
border-bottom-width="thick">
<fo:table-cell padding-top="1mm" padding-bottom="1mm">
和 table 行在 header 之后以迭代方式继续。
对此行为的可能原因有何见解?
提前致谢。
您的文档有两种页面,由您的 fo:simple-page-master
元素定义:
- 第一页是使用名为
first
的页面母版创建的,它的边距较小(左右两侧均为 0.5 厘米)
- 以下页面是使用
rest
页面母版创建的,其边距更宽(每个 2.5 厘米)
您可能应该修改页面母版定义,以便在所有页面类型上具有相似的左右边距。
我使用的是 FOP 2.0 版。我的模板在第一页上有一些文本段落,之后有一个动态 table 和 n 行数。
问题是 table 布局是完美的,直到生成的 PDF 文件第一页上的行。但是当它在第二页继续时,列向右移动了一些边距,最后一列变得不可见。对此有何见解?
下面是 FO 模板的相关部分,包含页面母版和初始 table 代码。
<fo:layout-master-set>
<fo:simple-page-master master-name="first" margin-right="0.5cm"
margin-left="0.5cm" margin-bottom="0.5cm"
margin-top="0.75cm" page-width="21cm"
page-height="29.7cm">
<fo:region-body></fo:region-body>
</fo:simple-page-master>
<fo:simple-page-master master-name="rest" margin-right="2.5cm"
margin-left="2.5cm" margin-bottom="2cm"
margin-top="1cm" page-width="21cm"
page-height="29.7cm">
<fo:region-body></fo:region-body>
</fo:simple-page-master>
<fo:page-sequence-master master-name="psmA">
<fo:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference master-reference="first"
page-position="first"/>
<fo:conditional-page-master-reference master-reference="rest"
page-position="rest"/>
<!-- recommended fallback procedure -->
<fo:conditional-page-master-reference master-reference="rest"/>
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="psmA">
<fo:flow flow-name="xsl-region-body">
<fo:block-container height="0.5cm" width="7.40cm" top="8.80cm"
left="0.3cm" padding=".4mm" position="absolute">
<fo:block text-align="start" space-after.optimum="3pt"
line-height="14pt" font-family="sans-serif" font-size="12pt">Header
Options</fo:block>
</fo:block-container>
<fo:block-container border-style="solid" border-width=".5mm"
height="1.00cm" width="16.40cm" top="8.80cm"
left="3.40cm" padding=".4mm" position="absolute">
<fo:block text-align="start" space-after.optimum="3pt"
line-height="14pt" font-family="sans-serif" font-size="12pt">$header.miscInfo</fo:block>
</fo:block-container>
<fo:block margin-left="0.40cm" margin-top="10.30cm" padding=".4mm" >
<fo:table border-top-style="solid" border-top-width="thick" >
<fo:table-header text-align="center" >
<fo:table-row border-bottom-style="solid" border-bottom-color="#000"
border-bottom-width="thick">
<fo:table-cell padding-top="1mm" padding-bottom="1mm">
和 table 行在 header 之后以迭代方式继续。
对此行为的可能原因有何见解?
提前致谢。
您的文档有两种页面,由您的 fo:simple-page-master
元素定义:
- 第一页是使用名为
first
的页面母版创建的,它的边距较小(左右两侧均为 0.5 厘米) - 以下页面是使用
rest
页面母版创建的,其边距更宽(每个 2.5 厘米)
您可能应该修改页面母版定义,以便在所有页面类型上具有相似的左右边距。