Нет
нет атрибута, который можно установить для достижения того, чтобы все строки имели одинаковый размер при растяжении.
AFIK до версии 6.7.0 dateэтого ответа
Естественно, вы можете вручную увеличить высоту в файле jrxml, но если вы хотите сделать это динамически, вам нужно сделать что-то как:
Рассчитатьнужную вам высоту в цикле набора данных в java для определения максимальной высоты текста с использованием метрик шрифта см. этот ответ , чтобы понять, как можно использовать метрики шрифта.
ЗагрузитьВаш jrxml как объект JasperDesign
и затем установите новую высоту.
Пример грубой обработки , учитывая, что я установил идентификатор на моемкомпонент таблицы, который присутствует в итоговой полосе, и каждая ячейка имеет ровно 1 текстовое поле.
int newHeight = 40;
//Load into desgin
JasperDesign design = JRXmlLoader.load("path/to/my/report.jrxml");
JRDesignBand summary = (JRDesignBand) design.getSummary();
//I have set id on my component in jrxml so that I find it quickly
JRDesignComponentElement tblElement = (JRDesignComponentElement) summary.getElementByKey("tbl");
StandardTable tbl = (StandardTable) tblElement.getComponent();
//loop all columns and set new height to both cell and textField
for (BaseColumn bc : tbl.getColumns()) {
StandardColumn col = (StandardColumn) bc;
DesignCell cell = (DesignCell) col.getDetailCell();
JRDesignTextField tf = (JRDesignTextField) cell.getChildren().get(0);
cell.setHeight(newHeight);
tf.setHeight(newHeight);
}
//Get my report from design and later fill it.
JasperReport report = JasperCompileManager.compileReport(design);