我正在尝试修改一个exist XML模板,以便与NetSuite的BFO PDF报表生成器实现一起使用。基本结构是一个有两行和两列的表,其中第一行进行列合并。在第二行中,一列填充数据,另一列填充图像。图像很小,并且显示在第一页中。但是,数据列提供了不同数量的信息,一些信息提供了HTML格式(例如,无序列表)。问题是,有时会有大量的数据,并且在没有分页的情况下从页面上运行。在某些情况下,我可以重构数据或执行一些魔术,以缩小大小或中断块,添加强制第二页。不过,在像无序列表这样的情况下,我不能用它做任何事情。
我尝试过强迫TBODY标记围绕TR标记,尝试强制页面进入属性。似乎什么都起不到作用。例如,这就是我从一长串清单中得到的:

您可以看到内容如何重叠页脚。这就是我对这张桌子行的看法:
<tbody page-break-inside="auto">
<tr style="border-top:4px solid; padding-bottom:10px;" page-break-inside="auto">内容还封装在DIV标记中:
<div id="itemDetails" style="min-width: 0px; max-width:545px;">对于这个特殊的例子,源记录上有两个内容字段,包含HTML格式的无序列表,也没有应用任何样式。下面是较小的源块(恰好被从显示页面的底部切断):
<ul>
<li>All the Advantages of Altivar 31 Drive</li>
<li>Excellent Resistance to Harsh Environments (50° C)</li>
<li>Coated Cards as Standard (IEC 60721-3-3 Classes 3c2 and 3s2)</li>
<li>Excellent Resistance to Power Supply and Motor Interference</li>
<li>0.25 HP to 20 HP</li>
<li>Single-Phase 200 V to 240 V, Three-Phase 200 V to 240 V, Three-Phase 380 V to 500 V, Three-Phase 525 V to 600 V</li>
<li>Integrated Class 2 Emc Filter for Radiated and Conducted Emissions</li>
<li>Din Rail Mounting</li>
</ul>有什么建议可以帮助使这些数据分页吗?我觉得有一个明显的解决办法我没有想到。
发布于 2018-05-15 14:06:10
在过去一周试图解决同样的问题后,如果列表中的信息比单个页面上的信息更长,我决定在列出信息时进行分页符。OP的评论指出了这个方向--您需要使用/省略嵌套元素来实现它。
如果我将要显示的数据长度小于适合于单个页面的长度,我将使用div和page-break-inside: avoid;。否则,我省略了div,只使用表-这允许表行中断到多个页面。
对于下面的示例,我的主要数据对象是searchResults。它包含valueArr的一个属性,它是我需要在打印输出中显示的散列数组。对于一种类型的打印输出,我的styleObj.maxCoilsPerPage设置为30;在您的情况下,您需要将其更改为适合于单个页面的行数。
CSS片段:
.nopagebreak {
page-break-inside: avoid;
}HTML片段:
<#list searchResults.valueArr as item>
<#if (item.valueArr?size lte styleObj.maxCoilsPerPage?number)>
<div class="nopagebreak">
</#if>
<table>
<tr>
<td width="70%">${item.itemName}</td>
...other table data...
</table>
<#if (item.valueArr?size lte styleObj.maxCoilsPerPage?number)>
</div>
</#if>
</#list>https://stackoverflow.com/questions/43530694
复制相似问题