Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ApacheFop-需要从第一页中间开始创建多页表_Java_Pdf_Xslt_Oracle Adf_Apache Fop - Fatal编程技术网

Java ApacheFop-需要从第一页中间开始创建多页表

Java ApacheFop-需要从第一页中间开始创建多页表,java,pdf,xslt,oracle-adf,apache-fop,Java,Pdf,Xslt,Oracle Adf,Apache Fop,我使用的是FOP版本2.0。我的模板在第一页上有一些文本段落,之后是一个动态表,有n行 ... </fo:block-container> <fo:block-container height="0.5cm" width="7.40cm" top="8.80cm" left="0.3cm" padding=".4mm" position="absolute"> <fo:block tex

我使用的是FOP版本2.0。我的模板在第一页上有一些文本段落,之后是一个动态表,有n行

...
</fo:block-container>
      <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-container width="17.40cm" top="10.30cm"
                          left="0.40cm" padding=".4mm" >
        <fo:block page-break-before="always">
        <fo:table border-top-style="solid" border-top-width="thick">
          <fo:table-body font-size="12pt" font-family="sans-serif">
            <fo:table-row border-bottom-style="solid" border-bottom-color="#000"
                          border-bottom-width="thick">
...
。。。
标题
选择权
$header.miscInfo
...
表由fo:block封装,fo:block又封装在fo:block容器中。 我加入了
,将长表分成多页。但使用此选项时,表格从第二页开始,第一页的剩余区域保持空白


我希望我的表从前面的块容器之后的第一页开始。

您正在使用该属性指定希望在其之前有一个分页符。只需远程设置分页符之前的属性。

我发现模板中有几个问题会影响表的放置和分页符

绝对定位块 “标题”段落被放置在绝对定位的块中:这意味着在处理过程中,它们被从正常流中取出,并且它们对后面的同级()的布局没有影响

解决方案:删除
position=“absolute”top=“…”left=“…”
并使用空格/边距(请注意,表周围
fo:block容器
上的
top
left
属性无效,因为该块不是绝对定位的)。您可以避免同时使用
fo:block容器
,而使用普通
fo:block
元素

打破
fo:block
元素上的属性
page break before=“always”
具有将分页符放置在该块内容之前的效果,这正是您试图避免的

解决方案:删除中断属性


通过建议的更改,标题和表格是正常内容流的一部分,它们的内容连续放置在页面中。

我过去常常将长表格分成多个页面。但这会导致表格从第二页开始,而第一页上的剩余区域保持空白。我希望我的表格从前面的block-containers后面的第一页开始。谢谢您的指导。我删除了包围fo:表的块容器,并使用了block和removed break page属性的边距属性。这就成功了,现在我的表格从前面文本之后的第一页开始。然而,我又面临一个小问题。在第一页的行之前,表格布局是完美的。但当它继续在第二页时,列会向右移动一些边距,最后一列将不可见。对此有何见解?原因可能是什么?再次感谢。@Akash如果不查看修改后的表格和页面母版,就很难说出哪里出了问题;此外,这可能是一个新问题。谢谢你的回答。我已经就此提出了另一个问题,更多细节请看。提前谢谢,谢谢凯文。不需要分页符before属性。这个问题已经解决了,但我现在面临的另一个问题已经在另一个答案的评论中阐明了。请仔细研究一下,看看你能不能提出一些建议。再次感谢。是的,如果答案解决了你的问题,考虑接受答案并问另一个问题。