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

时间:2016-06-01 20:41:39

标签: pdf freemarker netsuite bfo

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

    if let savedFacts = loadFacts() {
        birdFacts = savedFacts
        print("successfully loaded saved bird facts")
    }

func loadFacts() -> [CKRecord]? {
    return NSKeyedUnarchiver.unarchiveObjectWithFile(BirdFact.ArchiveURL.path!) as? [CKRecord]
}

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

2 个答案:

答案 0 :(得分:1)

您尝试的方法不会起作用,因为您正在混合使用BFO和Freemarker语法。 Netsuite使用两种不同的&#34;引擎&#34;处理PDF模板。第一步是Freemarker,它将记录字段与您的模板合并,并生成一个XML文件,然后由BFO转换为PDF文件。 <totalpages/>元素对Freemarker毫无意义,因为它稍后只会被BFO转换为数字。

不幸的是,根据BFO FAQ

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

目前我们没有明确分配的工具   页脚或标题到文档的最后一页时的数量   页面未知。

答案 1 :(得分:0)

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

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

这里的问题是 - 在一页输出上 - 你最少会得到2页...它总是会为免责声明/页脚添加页面...