Добавление разрывов страниц в таблицы в шаблонах PDF для NETSuite
На странице 176/177 Руководства по настройке SuiteBuilder 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, кроме как здесь.
Это ошибка / опечатка / устаревший код?
2 ответа
Это опечатка в примере.
На индексы списка в Freemarker ссылаются путем объединения имени списка с помощью _index. Итак, в этом примере desc_index
следует заменить на paragraph_index
,
Похоже, что они адаптировали этот пример из другого фрагмента с именем списка 'desc' (вероятно, для 'description'), но не обновили ссылку на индекс для соответствия.
Конечно, вам нужно изменить long_text_field
, field1
а также field2
к реальным полям, которые доступны для шаблона для его работы.
Обращаясь к названию вашего вопроса...
Вы можете добавить фактические разрывы страниц, используя <pbr>
тег. Вы также можете установить новый макет страницы. Пожалуйста, смотрите документацию BFO для получения дополнительной информации. Однако вы, вероятно, не захотите использовать это для непосредственного разделения таблицы, если у вас нет логики для закрытия и воссоздания продолжения данных таблицы. https://bfo.com/products/pdf/docs/userguide.pdf
Когда вы нарезаете таблицу, вы хотите использовать CSS как page-break-inside: avoid;
https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-inside