[英]Page Not Breaking Using NetSuite BFO PDF Report Implementation
我正在嘗試修改現有的XML模板,以便與NetSuite的BFO PDF報告生成器實現一起使用。 基本結構是一個包含兩行和兩列的表,其中第一行執行列合並。 在第二行中,一列填充數據,另一列填充圖像。 圖像很小,顯示適合第一頁。 但是,數據列提供了不同數量的信息,並且一些信息以HTML格式提供(例如無序列表)。 問題是,有時會有很多數據,並且它會在沒有分頁符的情況下運行。 在某些情況下,我能夠重構數據或執行一些魔術技巧,以減小大小或中斷第二頁的塊添加力。 但是,在無序列表的情況下,我無法做任何事情。
我嘗試在TR標記周圍強制使用TBODY標記,嘗試強制使用page-break-inside屬性。 似乎沒什么用。 例如,這是我得到的長列表:
您可以看到內容如何與頁腳重疊。 這就是我對所討論的表行的看法:
<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>
有關什么可能有助於將此數據分頁的任何建議? 我覺得有一個明顯的解決方案,我沒想到。
在嘗試過去一周解決相同的問題之后,如果列表中的信息長於單個頁面上的信息,我決定在列出信息時進行分頁。 OP的評論指出了我的方向 - 你需要使用/省略嵌套元素來實現它。
我正在使用帶有page-break-inside: avoid;
的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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.