Можно ли уменьшать высоту PageFooter в зависимости от содержимого? Или как реализовать по другому?
В области PageFooter есть 2 Frame с содержимым, они имеют разную высоту. Печатаются по условию, большой Frame $V{PAGE_NUMBER} == 1 только на первой странице, маленький $V{PAGE_NUMBER} != 1 на всех остальных.
Вопрос, можно ли менять высоту PageFooter, подгоняя под выведенный элемент?

На 2 и последующих страницах остается очень много пустого места. В Detail области еще бы пару строк поместилось. Размещение внизу страницы маленького Frame ничего не дает.
Если нельзя сделать в jasperreports, то как или с помощью чего можно организовать это (кроме Apache POI)?
Идеальный пример, первый и последующие листы спецификации.

UPD 1. Понятно. Нельзя уменьшить высоту PageFooter:
The page footer band appears on every page where there is a page header. Like the column footer, it is not resizable a run time.
https://community.jaspersoft.com/wiki/report-structure-jaspersoft-studio
Но тогда остается вопрос, как это реализовать в jasperreports?
Ответы (1 шт):
UPD 1. Нельзя уменьшить высоту PageFooter - ошибочен.
Может кому пригодится. Приблизительно я это вижу так.
Печать
JasperReport jasperReport = JasperCompileManager.compileReport("путь к файлу шаблона.jrxml");
KVerticalFiller customVerticalFiller = new KVerticalFiller(DefaultJasperReportsContext.getInstance(), jasperReport);
JasperPrint jasperPrint = customVerticalFiller.fill(parameters, positionsJRBean);
JasperExportManager.exportReportToPdfStream(jasperPrint, response.getOutputStream());
KVerticalFiller
public class KVerticalFiller extends JRVerticalFiller {
private int pageNumber = 0;
public KVerticalFiller(JasperReportsContext jasperReportsContext, JasperReport jasperReport) throws JRException {
super(jasperReportsContext, jasperReport);
}
@Override
protected void addPage(JRPrintPage page) {
super.addPage(page);
pageNumber++;
if (pageNumber == 2) {
try {
columnFooterOffsetY += pageFooter.getHeight() - 42;
//42 - высота в пикселях штампа на 2-й и последующих страницах
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
jrxml шаблон
Код не влез - ссылка на шаблон.
Использую jasperreports 6.15.0 и itext 2.1.7
Результат

