Netsuite PDF Templating: получить количество страниц в качестве атрибута
Я создаю шаблоны в Netsuite с помощью freemarker и хочу отображать нижний колонтитул только на последней странице. Я проводил некоторые исследования, но не смог найти решение (так как похоже, что среда не позволяет мне включать или импортировать библиотеки), поэтому я подумал, что просто сравниваю количество страниц с общим количеством страниц в теге if было бы хорошим и простым обходным путем. Я уже знаю, как отображать числа с помощью <pagenumber/>
а также <totalpages/>
теги, но все еще не может получить их как значения, поэтому я могу использовать их следующим образом:
<#if (pagenumber == totalpages) >
... footer html...
</#if>
Любые идеи о том, как или где я могу получить эти ценности?
2 ответа
Подход, который вы пробуете, не сработает, потому что вы смешиваете синтаксис BFO и Freemarker. NETsuite использует два разных "движка" для обработки PDF-шаблонов. Первым шагом является Freemarker, который объединяет поля записи с вашим шаблоном и создает файл XML, который затем конвертируется BFO в файл PDF. <totalpages/>
Элемент не имеет смысла для Freemarker, так как он будет преобразован в число только BFO позже.
К сожалению, возможность добавить нижний колонтитул только на последнюю страницу документа в настоящее время является ограничением для BFO, согласно BFO FAQ:
В настоящее время у нас нет возможности явно назначить нижний колонтитул или верхний колонтитул последней странице документа, когда количество страниц неизвестно.
Вы МОЖЕТЕ добавить его после разрыва страницы - и поставить разрыва страницы в конце тела
<pbr footer="nlfooter" footer-height="25%"></pbr>
</body>
Проблема здесь в том, что при выводе одной страницы вы получите минимум 2 страницы... это всегда добавит страницу для отказа от ответственности / нижнего колонтитула...