为 NETSuite 的 PDF 模板中的表添加分页符
Adding page breaks to tables in PDF templates for NETSuite
在 SuiteBuilder Customisation Guide 的第 176/177 页,Oracle 解释了如何向模板中的表添加分页符。
给出的例子是:
<!-- start of item table in transaction -->
<#list record.item as item>
<#if item_index==0> <!-- Header Definition -->
<tr>
<th>${item.field1@label}</th>
<th>${item.long_text_field@label}</th>
<th>${item.field2@label}</th>
<!-- ... -->
</tr>
</#if>
<#list item.long_text_field?split("<br />") as paragraph>
<#if desc_index==0>
<tr>
<td>${item.field1}</td>
<td>${paragraph}</td>
<td>${item.field2}</td>
<!-- ... -->
</tr>
<#else>
<tr>
<td></td>
<td>${paragraph}</td>
<td></td>
<!-- ... -->
</tr>
</#if>
</#list>
</#list>
<!-- end of item table in transaction -->
但是这会导致以下错误:
desc_index
一词似乎无法评估,此外,除此处外,该词未出现在任何其他 NETSuite 相关文档中。
这是 bug/typo/deprecated 代码吗?
这是示例中的错字。
Freemarker 中的列表索引是通过将列表名称与“_index”连接起来引用的。因此,在此示例中,desc_index
应替换为 paragraph_index
.
他们似乎从列表名称为 'desc'(可能是 'description')的另一个片段改编了这个示例,但忽略了更新索引引用以匹配。
当然,您需要将 long_text_field
、field1
和 field2
更改为模板可用的真实字段,它才能工作。
正在解决您的问题标题...
您可以使用 <pbr>
标签添加实际的分页符。您还可以设置新的页面布局。有关详细信息,请参阅 BFO 文档。但是,您可能不想使用它来直接拆分 table,除非您有逻辑关闭并重新创建 table 数据的延续。
https://bfo.com/products/pdf/docs/userguide.pdf
分割 table 时,您想像 page-break-inside: avoid;
一样使用 CSS
https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-inside
在 SuiteBuilder Customisation Guide 的第 176/177 页,Oracle 解释了如何向模板中的表添加分页符。
给出的例子是:
<!-- start of item table in transaction -->
<#list record.item as item>
<#if item_index==0> <!-- Header Definition -->
<tr>
<th>${item.field1@label}</th>
<th>${item.long_text_field@label}</th>
<th>${item.field2@label}</th>
<!-- ... -->
</tr>
</#if>
<#list item.long_text_field?split("<br />") as paragraph>
<#if desc_index==0>
<tr>
<td>${item.field1}</td>
<td>${paragraph}</td>
<td>${item.field2}</td>
<!-- ... -->
</tr>
<#else>
<tr>
<td></td>
<td>${paragraph}</td>
<td></td>
<!-- ... -->
</tr>
</#if>
</#list>
</#list>
<!-- end of item table in transaction -->
但是这会导致以下错误:
desc_index
一词似乎无法评估,此外,除此处外,该词未出现在任何其他 NETSuite 相关文档中。
这是 bug/typo/deprecated 代码吗?
这是示例中的错字。
Freemarker 中的列表索引是通过将列表名称与“_index”连接起来引用的。因此,在此示例中,desc_index
应替换为 paragraph_index
.
他们似乎从列表名称为 'desc'(可能是 'description')的另一个片段改编了这个示例,但忽略了更新索引引用以匹配。
当然,您需要将 long_text_field
、field1
和 field2
更改为模板可用的真实字段,它才能工作。
正在解决您的问题标题...
您可以使用 <pbr>
标签添加实际的分页符。您还可以设置新的页面布局。有关详细信息,请参阅 BFO 文档。但是,您可能不想使用它来直接拆分 table,除非您有逻辑关闭并重新创建 table 数据的延续。
https://bfo.com/products/pdf/docs/userguide.pdf
分割 table 时,您想像 page-break-inside: avoid;
一样使用 CSS
https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-inside