Netsuite PDF 模板:获取页数作为属性

Netsuite PDF Templating: get number of pages as attribute

我正在使用 freemarker 在 Netsuite 中制作 pdf 模板,我只想在最后一页显示页脚。我一直在做一些研究,但找不到解决方案(因为看起来环境不允许我包含或导入库),所以我认为只需将页数与 if 标签中的总页数进行比较将是一个不错且简单的解决方法。我已经知道如何使用 <pagenumber/><totalpages/> 标签显示数字,但仍然无法将它们作为值,所以我可以这样使用它们:

<#if (pagenumber == totalpages) >
    ... footer html...
</#if>

关于如何或从何处获取这些值的任何想法?

您尝试的方法行不通,因为您混合使用了 BFO 和 Freemarker 语法。 Netsuite 使用两种不同的 "engines" 来处理 PDF 模板。第一步是 Freemarker,它将记录字段与您的模板合并并生成一个 XML 文件,然后由 BFO 将其转换为 PDF 文件。 <totalpages/> 元素对 Freemarker 没有意义,因为它只是稍后被 BFO 转换为数字。

遗憾的是,根据 BFO FAQ:

,目前 BFO 的限制是只能将页脚添加到文档的最后一页

At the moment we do not have a facility for explicitly assigning a footer or header to the last page in a document when the number of pages is unknown.

您可以在分页符之后添加它 - 并将分页符放在正文的末尾

<pbr footer="nlfooter" footer-height="25%"></pbr>
</body>

这里的问题是 - 在单页输出中 - 您将至少得到 2 页...它总是会添加一页用于免责声明/页脚...